fold_left
ができたので次はfold_right
もできるよね、というわけで。
Rustのおべんきょう(5) - Hello, List(fold_left) -
List
を作ったので次はfold_left
だよねー、というわけで書いてみた。しかし、型を合わせるのに結構手間取ってしまった…
Rustのおべんきょう(4) - Hello, List! そのに -
Vec<T>
型を引数で受け渡して、それをList<T>
型に変換することで、とりあえずリストの生成を簡単にすることができた。しかし、ここでT : Copy
にしちゃったからList<List<>>
型はnew_list
関数では作れない気がしてきた。
Rustのおべんきょう(3) - Hello, List! -
とりあえず関数型プログラミングには必須だろうということで、List
を定義してみた。コンスセルのtail
部分にいちいちBox::new
つけなきゃならない(理由はわからなくもない)のがめんどいけどどうにかならないものか…。
Rustのおべんきょう(2) - Hello, Macro! -
Hello, World!やったので次はHello, Macro!ですね。というわけで、サンプルコードを真似して書いてみました。
macro_rules! hello { () => ( println!("Hello, Rust Programming Language"); ) } fn main() { hello!(); }
()
が空引数にマッチするパターンを表しているわけですね。わかります。コンパイル方法と出力結果は同じなので省略します。
Rustのおべんきょう(1) - Hello, World! -
Rustには高機能なマクロがあると知って、ちょっと勉強を始めてみることにしました。飽きたらそこで止めるかもしれませんがご了承ください。
まずは定番のHello, World!書いてみましょう。
fn main() { println!("Hello, {rust}", rust = "Rust Programming Language"); }
println関数(呼び出し方が特殊なのでマクロなのかも)に"Hello, {rust}"という文字列(変数を含む)を渡して、rust =で{rust}の部分を埋めています。
>rustc hello.rs
で、hello.exeが生成されるので、それをそのまま実行。
>hello.exe Hello, Rust Programming Language
第一回(?)はここまで。
Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド [Kindle版] が発売されるようです
出版社の方から報告があったのですが、紙本でしか買えなくて持ち運びに不便という方に朗報です。
追記:インプレス様のサイトから、PDF、EPUB形式でも買えるようです
@kmizu インプレスからだと各種フォーマットで買えるぽいですね。 http://t.co/vGKSKBfIdi
— ssmylh (@ssmylh) April 27, 2015
追記の追記:
@kmizu あれ?発売はまだですよー。30日から配信で、今は予約だけのようです。
— Yasuo Nakanishi (@nakanishiyasuo) April 27, 2015