サービスを探す

関数型プログラミングの疑問に答えます

Haskellや圏論に興味はあるがわからない方へ

販売実績:0
現在お願い中:0 残り受付枠:20 お届けまで:要相談
2,000

20ポイント(1%)獲得

この出品者は最終ログインから時間が経っています。

サービス内容

著作も多数あるプログラミング歴20年の現役プログラマーが、Haskellや圏論の疑問に答えます。関数型プログラミングは抽象的で、一人で勉強しようとしても誤った理解をしてしまうことが多いように思えます。λ計算や圏論を勉強した経験のある私と議論をすることで、関数型言語の実像を掴むためのお手伝いをします。

現役のWEBプログラマーですので、JavaやPythonなど、普通のプログラミングに関する質問でも答えることができます。

サービスのサンプルがご覧いただけます。
サンプルをすべて見る
サンプルをすべて閉じる
トークルームでの回答サンプル(1)

Functorクラスには対象を移すためのreturnメソッドが必要な気がするのですが、ないのはなぜでしょうか?

Haskellでは、対象を移すのは型コンストラクタ、例えばMaybeです。
「対象を移す」とは、Haskellの言葉では型=対象なので、「型を受け取って型を返す」ものです。これは型コンストラクタに該当します。returnは関数で「(ある型の)値を受け取って値を返す」ものであり、関手の対象関数とは違うものです。

トークルームでの回答サンプル(2)

Haskellでグローバル変数を作りたいのですが、どうすればいいでしょうか。

unsafePerformIOとIORefを使って定義することはできますが、インライン展開などの最適化を避けなければならないなど罠が多く、推奨はしません。
Haskellらしく、グローバル変数としたい値もすべて引数としてアプリ内を引き回すのが普通です。アプリ全体で引数として引き回すとコードが冗長になりますが、これを緩和するためにReaderTやStateTなどのモナド変換子を用いるのが普通です。

購入にあたってのお願い

難しいテーマですので、一度のやり取りで答えにたどり着くのは難しいと思います。そのため、正しい回答にたどり着けなくても、キレのいいところで回答を終了させていただきます。その場合は復習をしていただき、また疑問点の解消のためにこちらの商品を購入してください。

出品者は専門家の講座や現職の研究者を含む有志の勉強会で5年以上の勉強をした経験がありますが、出品者自身は研究者ではなく、理系の大学卒です。

一言PR

家計を支えるために、収入を得る方法を探しています。

得意を購入しよう!

登録はたった30秒。ココナラに登録してサービスを購入しよう。

Eメールで新規登録(無料) Facebookで新規登録(無料) YahooIDで新規登録(無料)
既に登録されている方はこちら

関連サービス