引き続きHaskell

なんなんだあの\x -> なんとかかんとかみたいなのは。
さしあたりリスト。Pythonとは違い、イミュータブルだって。というかざっと見た感じほとんどそうなんではないかという勢い。わからんなあ。

で、range()みたいなノリでリストを作れるのね。

Prelude> [1..10]
[1,2,3,4,5,6,7,8,9,10]

ふーん。あ、でもrange(1,10)の結果は[1, 2, 3, 4, 5, 6, 7, 8, 9]だからちょっと違う。

Prelude> [1,2..10]
[1,2,3,4,5,6,7,8,9,10]

ふんふん。

Prelude> [1,2,3,4..10]
<interactive>:1:9: parse error on input `..'

えっなに。あたしの想定では[1,2,3,4,5,6,7,8,9,10]なんだけど。なんなの。

Prelude> [1,2,3..10]
<interactive>:1:7: parse error on input `..'

んーー?

Prelude> [1,5..10]
[1,5,9]

えっなにそれキモい。なんで1,5,9なのん。。。

Prelude> [1,5..30]
[1,5,9,13,17,21,25,29]

あー!あー。
等差数列。
なるほど。。。
マニュアルもななめ読みで適当に打ってたらこうなったというお話。

全然関係ないですが、TwigってJinja(Jinja2)にそっくりさん?Jinja2のテンプレートそのまま使えるんじゃないかってくらい似てる。
おかげさんで読みやすいのなんの。
素のphpでテンプレート書くの嫌だし今日びSmartyもないわなーというときに、これはいいんでないか。
Jinja2にそっくりだという点だけがポイント高いわけですが。趣味的に。

おねーさんでもできるHaskell入門

大きくでたのはタイトル限り。
なんかの気の迷いで見つけたHaskellのロゴがとても可愛かったので、いれてみる。
こんな文章もあって一抹の不安もあるけれども。
拡張子は.hs。pythonとかみたいにpython hoge.pyじゃだめで、
runghc hoge.hs
とかやる。なるほど。あとmainを書く。うわーでた。でましたmain。Javaに挫折してこっち久々に見たなきみ。
コンパイルできてネイティブの実行形式ファイルもさくっと作れる。
ghc –make hoge.hs
py2exeとか使わないと実行ファイル作れない世界にいたのに、Haskellだとさっくり行くんですね。ハローワールド程度の中身でも、コンパイルすると1MBくらいにはなってました。恐るべしWindows。
やってみた以下の記事の中身ですがあしあととして。

猿言語phpに慣れ親しんでいるとワケワカな世界なんですが、ちょっとは脳のシワ増やそうと思って触ろうかと思っています。
LispにしろErlangにしろ同じなんですが「あ、こういう感じの事やってるのね?」っていう類推が全くきかない。楔形文字でも見ているのであろうかという感じ。まったくの異文化。

問題は、これが何の役に立つのかってことなんだよねー
頭いい人たちみたいな数学のどうしたこうしたとか縁ないし。
まあなんだmemcacheやMongoDBへの接続ライブラリもあるみたいなので、目下のモチベーションはそこに向ける。
webserverもあるみたい。