帳面立寄所

立寄所だからここに帳面を貼って、それで必要とあらばどこかに持って行くと、そういうことですね。とんでもないテキストだらけのTumblrですね。ついでにここをプロフィールを貼る場所にしよう。
表示名
Hidemaro(Tumblr・Twitter・Blog・電子メール・Windows Live・Last.fm(?))
ニコフィー(mixi)
Twitter
@hidemaroh
Blog
日記帳だ! with Tux on Libserver
mixi
ニコフィーさん
Last.fm
Nicofeeミュージック・プロフィール
現住所
三重県名張市の美旗地区
学校・学科
奈良工業高等専門学校 電気工学科
得意技
Perl・HTML・CSS
趣味
ゲーム(アドベンチャーゲームの類がメイン、例外はSimCity)

May 19

F#で無限素数シーケンスを作る

かの有名なエラストテネスのふるいを用いてF#で無限素数シーケンスを作ろうと思ったがめんどくさい。

まぁF#は純粋関数型言語じゃないからいろいろやりようはあるだろうが、関数型らしいやりかたでやってみた。

let prime = ([],2) |> Seq.unfold (fun (l,n)->
let isp l n= l |> Seq.takeWhile (fun p->p*p<=n) |> Seq.exists ((%)n>>(=)0) |> not
let p=Seq.initInfinite ((+)n) |> Seq.find (isp l)
Some(p,(l@[p],p+1))
);;

だが速いかはよくわからない。まぁいい感じだとは思うんだけどね。


Page 1 of 1