問題タブ [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.
list - Ocaml リスト: 追加およびマップ機能を実装する
現在、友人の OCaml プログラムを拡張しようとしています。これは、いくつかのデータ分析に必要な関数の膨大なコレクションです。
これがある種の「遅延」リストを実装していることはわかりましたが、実際にどのように機能するかはまったくわかりません。上記の型に基づいて Append 関数と Map 関数を実装する必要があります。誰もそれを行う方法を知っていますか?
どんな助けでも本当に感謝します!
oop - 基本的な OCaml OOP の質問
oCaml を学習しようとしていますが、以下のプログラムが無効な理由について問題があります。
プログラムをコンパイルしようとすると、次のエラーが表示されます。
私が特に興味を持っている理由は次のとおりです。
無効です。任意の (つまり、任意の) ヘルプをいただければ幸いです。
oop - カスタム オブジェクトをパラメーターとして渡すための OCaml 構文
OCaml 言語の構文を理解しようとしていますが、いくつかの OOP 構造を適用する際に問題が発生しています。以下のコードでの私の目標は、仮想クラス foo から継承するクラス バーを持つことです。仮想クラスには、「プレーヤー」オブジェクトのインスタンスをパラメーターとして取得する 3 つの仮想メソッドが含まれています。以下のコードをコンパイルすると、次のエラーが表示されます。これはどういう意味ですか (覚えておいてください、私はこれが初めてです)、どうすれば修正できますか?
ありがとう!
oop - OCaml の構造型付けとリスト
OCaml のリストに問題があります。実行時にリストを変更できるかどうかという矛盾するステートメントを読みました。cons 演算子は実行時に使用できますか?
さらに、なぜドーベルマン (下記参照) をチワワのリストに入れることができるのでしょうか? リストに別のチワワを追加するにはどうすればよいでしょうか (最後の行で試みたように)。
oop - OCaml でオンザフライでオブジェクトを作成する
トップレベルではなく、コンパイルされたコードを使用して OCaml を学習しようとしています。ただし、オンラインのサンプル コードの多くは後者にアピールしているようです。
以下のオブジェクトのメソッド内に新しい Foo を作成したいと思います。このコードは、doFooProc 定義の構文エラーを理由にコンパイルできません。
さらに、「let」構文は、クラス定義内では使いにくいようです。何故ですか?
doFooProc メソッドでクラス foo の新しいオブジェクトを作成し、インスタンス化された foo のプロセス コマンドを呼び出すにはどうすればよいですか?
ocaml - Ocaml noobie Q -- 累積パラメータの使い方は?
Project Eulerの問題 18に取り組んで、Ocaml を学ぼうとしています。やりたいことはわかっているのに、どうすればいいのかわからない。
3 つのリストがあります。
番号 list2 を list1 の最大隣接番号に追加したいのですが、IOW では 6+2、7+3、8+4、9+5 を追加してリスト [8;10;12;14] を取得します。リスト line[] はダミー変数です。
これが私の3回目の試みです:
これを実行すると、line = [9999;8;10;12;14] と予想されますが、代わりに line = [9999] となります。OTOH, fu は [999914] として出力されます。
コードをステップ実行すると、コードは期待どおりに実行されますが、何も変化していません。else ブロックの accum は変更されません。
私はこの言語を理解していません。誰でもアドバイスできますか?
f# - オプションの構文と繰り返しをOcamlYacc/FsYaccで表す
文法の字句解析/構文解析のスキルを身に付けようとしています。SQL用に作成した単純なパーサーを振り返っていますが、完全に満足しているわけではありません。パーサーを作成するためのより簡単な方法があったはずです。
SQLにはオプションのトークンと繰り返しがたくさんあるので、私はつまずきました。例えば:
と同等です:
ON
and句はオプションであり、WHERE
複数回発生する可能性があります。私はこれらをパーサーで次のように処理しました。
つまり、オプションの構文を個別のルールに分割して処理し、再帰を使用して繰り返しを処理しました。これは機能しますが、解析が小さなサブルーチンの束に分割され、文法が実際に何を表しているかを確認するのは非常に困難です。
角かっこ内にオプションの構文を指定し、*または+で繰り返しを指定できれば、はるかに簡単に記述できると思います。これにより、whereClauseとjoinListのルールが次のようになります。
このフォームははるかに読みやすく、キャプチャしようとしている文法をより直感的に表現していると思います。残念ながら、この表記法または同様のものをサポートするOcamlまたはF#のドキュメントには何も見つかりません。
OcamlYaccまたはFsYaccでオプションまたは反復トークンを使用して文法を表す簡単な方法はありますか?
java - OCaml での従来のシングルトン実装
私は OCaml でシングルトン デザイン パターン (qua Java) を概念化しようとしていますが、GoF の作業の概念実証で使用していないファンクターやモジュールをほのめかしているインスタンスを見たことがあります。基本的に、OCaml を使用して次の機能を再作成したいと思います。
これはモジュールやファンクターなしで可能ですか?
ocaml - OCaml Sdlに関するドキュメントはありますか?
そのためにOCamlSDLを使った小さなゲームを開発しています。それに関するドキュメントが見つからなかったので、3つの質問があります。
- 私はWindowsでOCamlSDLを使いたいので、誰でもそれをコンパイルする方法を手伝ってくれるでしょう(私はすでにLinuxをあきらめて仮想PCにインストールしました)
- OCaml SDLの使用方法に関するドキュメントはありますか?
- 800x600のウィンドウを使用していますが、内部のグラフィックを表現したいのですが、たとえば、ピクセルは背景を表し、もう1つは岩を表すなど、その(800x600)ウィンドウの最適な表現は何ですか?一般的なケースとして、800*600セルの配列を使用しています。