なんか考えてることとか

変な人が主にプログラミング関連で考えていることをまとめる。

Haskell

HaskellのIOアクションが副作用を持たず、参照透過であることをようやく納得できた話

今回は、HaskellのIOアクションについて、ようやく納得できたので書いていく。

モナド初心者が解く、モナドのあらゆる誤解

2022/5/21 関数適用の表現、その他稚拙な表現を修正。最近、プログラミングにおけるモナドについて調べていて、モナドと言うものがどんなものなのか掴み始めてきて、ある程度これが誤解なのかそうでないのか見分けられるようになってきたので、モナドのよく…

直和型を「C言語の共用体に相当する」と説明するのは、もはや誤解を生むだけである

関数型プログラミングを学ぶ際に登場することのある単語として「代数的データ型」というものがあり、直和型はこの代数的データ型の一種である。代数的データ型において、「列挙型はCの列挙体(enum)、直積型はCの構造体(struct)に相当する」という説明に…

Haskellで再帰を心置きなく書いて良い理由(補足編)

2022/9/18 「サンク」周りの怪しい言い回しを修正 opaupafz2.hatenablog.com前回、スタックメモリの観点からもHaskellで再帰をしても良いと言う理由と再帰を書く際に気を付けなければならないことについて書いた。今回は、その補足として「末尾再帰で書かざ…

Haskellで再帰を心置きなく書いて良い理由

2022/9/18 「末尾再帰最適化」を「末尾呼び出し最適化」に修正 「サンク」関連の怪しい言い回しを修正 その他微妙な表現を修正 Haskellのような純粋関数型プログラミング言語では基本破壊的代入が許されていないために、ループするための構文、または式が用…