2013-04-01から1ヶ月間の記事一覧

Haskellのポイントフリー

読みにくいからやめてほしい。 自己満足以外に実用的な意味があるのかどうか。 そもそも、セクションとかflipとかを使いまくらないと実現できないわけでしょう? unlambdaやlazy kは実用言語じゃないでしょう?

ビットボンバーマン(第8回オフラインリアルタイムどう書くの問題)

F#

http://qiita.com/items/709d61dff282cff7a890 http://qiita.com/items/463311ff1ce4dd2cc943

バス代の計算(第9回オフラインリアルタイムどう書くの問題)

F#

http://qiita.com/items/84255ac417ef25069a3b http://qiita.com/items/7385db8cce051cb499d7

ポーカーの役判定(第10回オフラインリアルタイムどう書くの参考問題)

F#

haskellグループなのにF#のエントリ。大目に見てね。 F#の練習に http://qiita.com/items/d819d1e5f2378317511e の問題を解いてみた。 (横浜へなちょこプログラミング勉強会には参加したことないですが……横からすみません) http://qiita.com/items/80c2c22…

HaskellとF#の適当な比較

サンク メモ3

F#

何度も書いているのは、http://d.hatena.ne.jp/itchyny/20130209/1360417348を読んだから。 let rec foldr = T (fun _ (k : Thunk<Thunk<'a> -> Thunk<'b> -> 'b>) (z : Thunk<'b>) (list : Thunk<TList<'a>>) -> let rec go xs = match eval xs with | Nil -> z | Cons (y, ys) </tlist<'a></thunk<'a>…

F#の範囲演算子が遅かった

F#

コードは、「セクシー素数ベンチ(の非効率な実装)」を移植したもの。 open System.Linq let isPrime n = Enumerable.Range(2, n - 2) // {2..n-1} |> Seq.forall (fun i -> n % i <> 0) let sexyPrimes n = Enumerable.Range(9, n - 8) // {9..n} |> Seq.m…

サンク メモ2

F#

type Thunk<'a> = T of (unit -> 'a) let eval (T x) = x () let apply f (x : Thunk<'a>) = T (fun _ -> (eval f) x) let one = T (fun _ -> 1) let two = T (fun _ -> 2) let add = T (fun _ x y -> eval x + eval y) let three = apply (apply add one) t…