問題タブ [ocaml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
floating-point - コアOCamlのフロートの絶対値
OCamlのfloatの絶対値関数が必要ですが、コア言語には絶対値関数がないようです。そのため、次のように記述しました。
これはポジティブには機能するようですが、ネガティブには機能しないようです。
この式の型はfloat->floatですが、ここではint型で使用されます
私のロジックのエラーは何ですか?
interface - 異なるレベルの特異性を持つ OCaml タイプ
OCaml でインターフェイスをシミュレートしようとしていて、「type」構造を使用しています。私には2つのタイプがあります:
...そして、特定の fooSansBar を定義したい:
...しかし、バーフィールドが定義されていないと言われています。このことから、一致する fooSansBar の署名で渡された値とは対照的に、システムは私が fooConBar を作成しようとしていると認識しているようです。上記で定義された 2 つのタイプが存在する場合、fooSansBar を作成することは可能ですか?
さらに (私は OCaml が初めてなので) インターフェイスをシミュレートするためのより良い方法はありますか?
functional-programming - OCamlについて頭を包む
私は単なる初心者プログラマーであり (趣味でやっています)、Python/C++/その他の手続き型言語の世界と手続き型の問題解決スタイルの出身です。OCaml の機能的なスタイルに約 1 週間悩まされた後、OCaml のシンプルさに惚れ込みました。私はエンジニアでも数学者でもないので、思考プロセスをより機能的に考えるために役立つ本やリソースは何ですか? 単なる標準的なエクササイズですか、それともそれらの用語で考えるのに役立つ本はありますか?
design-patterns - OCaml の Mediator デザイン パターン
OCaml (メディエーター パターン) で 2 つのクラス間の相互バインディングを達成しようとしていますが、コンパイル時にエラーが発生します。
エラー: クラス コンストラクターの同僚は 1 つの型引数を予期していますが、ここでは 0 個の型引数に適用されます。
クラス定義の ['foo] 構文に精通しているとは言えませんが、メディエーターがすべての同僚と各同僚への参照を保持できるようにするために、(無駄に) それに頼ってきました。ソースコードでのクラスの定義の重要性を克服しようとしながら、それぞれのメディエーター。同僚がメディエーターへの参照を保持できるようにするにはどうすればよいですか?
haskell - OCaml を既に知っている場合、Haskell や F# を学ぶ必要がありますか?
OCaml の学習を続けるべきか、F# や Haskell に切り替えるべきか迷っています。
私が最も興味を持っている基準は次のとおりです。
長寿
- どの言語が長持ちしますか? ユーザーや開発者によって数年で放棄される可能性のあるものを学びたくありません。
- Inria、Microsoft、グラスゴー大学は、それぞれのコンパイラを長期的にサポートし続けますか?
実用性
- このような記事を見ると、Haskell を使うのが怖くなります。ハッシュ テーブルは、高速検索に最適な構造です。Haskell の支持者は、バイナリ ツリーである Data.Map の使用を提案しています。
- メリットが大きい場合を除き、かさばる .NET フレームワークに縛られるのは好きではありません。
- パーサーや数学プログラム以上のものを開発できるようになりたいです。
よく設計された
- 私は自分の言語が一貫していることを好みます。
論理的な議論と記事からの引用であなたの意見を裏付けてください. ありがとうございました。
haskell - 手続き型プログラマー向けの機能コード スニペットのリスト?
手続き型コードを関数型コードに変換しようとして、いまだに行き詰まってしまうことがあります。
手続き型イディオム/スニペットにマッピングされた機能イディオム/スニペットのリストはありますか?
編集
これらのスニペットの集中管理された Web サイトがないように思われるので、これをコミュニティ wiki に変えています。プロシージャル -> 機能スニペットをここに貼り付けてください。
f# - OCaml/F# の関数がデフォルトで再帰的でないのはなぜですか?
F# と OCaml (およびおそらく他の言語) の関数がデフォルトで再帰的でないのはなぜですか?
言い換えれば、言語設計者は、次rec
のような宣言を明示的に入力させることが良い考えだと判断したのはなぜですか。
デフォルトで関数に再帰機能を与えませんか?なぜ明示的なrec
構造が必要なのですか?