2018-01-04から1日間の記事一覧

【関数型言語】使いどころ

関数型言語の勉強中。関数型言語とはどういうものかを理解するのに四苦八苦。命令型言語と比べてどんな特徴があるのかと言う観点で学んでいる。しかし、本当に知りたいのは、どういう場合に関数型言語使うべきかということ。 ナップサック問題、サラリーマン…

【関数型言語】使いどころ

関数型言語の勉強中。関数型言語とはどういうものかを理解するのに四苦八苦。命令型言語と比べてどんな特徴があるのかと言う観点で学んでいる。しかし、本当に知りたいのは、どういう場合に関数型言語使うべきかということ。 ナップサック問題、サラリーマン…

【関数型言語】学ぶ目的・メリット

単なる好奇心ももちろんある。関数型言語って何ぞ? 実用的な観点として、次のようなもの 最近はプロセッサがマルチコアになり、またスケーラブルなシステムにするためにクラウド上にクラスタを作って動かすシステムが増えている。処理速度を上げるために、…

【関数型言語】継続渡し(CPS:Continuation-passing style)

計算途中の文脈(コンテキスト)を保存し、任意のタイミングで計算を途中から継続できるようにするしくみらしい。 ここで生じた疑問。 コンテキストとは具体的にはどのような内容なのか? OSのコンテキストスイッチの場合、 各種レジスタの内容 スタックの内…

【関数型言語】ファンクター(関手)

「すごいHaskell楽しく学ぼう!」 第11章「ファンクターからアプリカティブファンクターへ」 11.1 「帰ってきたファンクター」より。 ファンクターとは関数で写せるもののことです。 ファンクターの型クラスメソッドは一つだけで、それは fmap です。fmap の…

【関数型言語】Haskell と Scala の畳み込み関数

Scala とHaskell を比較しながら学んでいる。畳み込み関数について、全く違った表記があった。 Scala では foldLeft ではなく foldRight がスタックオーバーフローの危険がある。 Haskell では foldr ではなく foldl がスタックオーバーフローの危険がある。…

2018年01月04日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…