より高いレベルの関数型プログラミングに進む方法[終了]


12

これがこの質問にふさわしくない場合はまずおaび申し上げますが、th.CSはStackOverflowでもふさわしくないのではないかと思います。

私は関数型プログラミングが大好きで、F#の中級レベルの人間であり、Haskellの基本概念をかなりよく理解していると思います。

今、私は本当にこれを次のレベルに持っていき、ファンクターやものについてのすべての話が何であるかを理解したいです。どこから始めればいいのかわかりません。

ラムダ計算について何かお読みになりましたか?カテゴリー理論?私は少し知っていますが、これが正しい/最も早い啓発方法だとは思いません。

たぶん、あなたは私にそれについていくつかのヒントを与えることができます。

PS:私は数学を恐れず、練習問題に簡単にイライラすることはありませんが、この方法でフィードバックをすぐに得ることができるので、コードを置くことができるイントロ/テキストを好むでしょう。

回答:


6

F#は良いスタートです。Haskellを使い続け、ラムダ計算を間違いなく読み、上記のLambdaの論文を読んでください。

ハイブリッド言語(Clojure、Scala、OCamlなど)を使用すると、オブジェクト指向のバックグラウンドから来た場合に簡単になりますが、機能的なプログラミングの考え方を本当に理解したい場合は、むしろ本物(Haskell、Lisp、...)。


おかげで-もちろん私はF#に固執します(本番コードで使用できます...)、さらにhaskellを学習しようとします-しかし、これはhaskellでコンソールアプリケーション以外のことを行うのがかなり難しいため、これは難しいです(まだ)。-スキームはいいかもしれません(Lispで短いエピソードが1回ありました)が、OCamlはF#とほぼ同じです(私は思う)
カーステン

@CarstenKönig:UIを気にせずにできる非常に興味深いプロジェクトがたくさんあります。素晴らしいオプションはプログラミング言語での作業です。HaskellでシンプルなSchemeまたはPrologインタープリターを作成することは素晴らしい練習であり、コマンドラインで楽しく実行できます。
ティコンジャービス

4

時間が贅沢な場合は、これら3冊の本を読むことをお勧めします。

これらの3冊の本は、一般的な関数型プログラミングの理解を深めるでしょう。


ATMの時間は問題ではありません-そして、とにかく夜にエネルギーを見つけたら私は少し時間がかかります...それは遅いかもしれませんが、通常私はたくさん読むことができます。もちろん、これらの種類の本では、私のペースは遅くなります...ありがとう(悲しいことに、最後の本は絶版のようです...画面から読んで我慢できない)
カルステン

2

Haskellにファンクターの紹介があります。

本当に重いものについては、オレグ・キセリョフの素晴らしいサイトを読むことができます:区切られた継続、ジッパー、イテレート、...


ありがとう-私はもちろんLYAHを知っていて、それを愛しています(OK-そこにいくつかの演習があるはずです)-しかし、サイトは本当に役に立ちます-ありがとう!
カルステン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.