問題タブ [oz]
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.
oz - Mozart / Ozプログラミング言語についての意見はありますか?
オズはかなりあいまいな言語だと思います。私は最初にプログラミング言語シュートアウトでそれについて聞いた。次に、このWikipediaの記事を見つけました。この記事には、Mozart/Ozが8つの異なるパラダイムをサポートすると記載されています。
だから私はそれを試してみました。非常に紛らわしく、不足していることがわかった以外は、たくさんのドキュメントがありました。本やその他のドキュメント、およびいくつかの例が見つかりませんでした。また、私があまり慣れていないEmacsと緊密に統合されているように見えました。
このプログラミング言語についてどう思いますか:それは完全に時間の無駄ですか?または、誰かが私にいくつかの良いリソースなどを教えてもらえますか?
また、Emacsは使いたくありません。インタラクティブインタプリタや通常のコンパイル実行サイクルのような他のオプションはありますか?
oz - Ozでリストを作成するにはどうすればよいですか?
次のコードを使用して、 Ozでリストを作成しようとしています。
Mozartコンパイラは、コードが受け入れられたことを示していますが、参照ウィンドウは開きません。私がやろうとしているのは、Ozでリストを作成することだけです。
コードの何が問題になっていますか?
oz - Oz で整数をリストに、またはその逆に変換するにはどうすればよいですか?
整数をリストに変換してOzに戻すにはどうすればよいですか? のような数字を取り、321
それを に逆にする必要があり123
ます。
Oz の Reverse 関数はリストに対してのみ機能するので、321 を [3 2 1] に変換し、それを逆にして、[1 2 3] を 123 に戻します。これは Oz で実行できますか?
functional-programming - Ozでの末尾再帰の最適化
Ozチュートリアルの関数に関する章では、次のように述べています。
怠惰な関数型言語と同様に、Ozでは、Standard ML、Scheme、並行関数型言語Erlangなど、特定の厳密な関数型言語には見られない特定の形式の末尾再帰の最適化が可能です。ただし、Ozの標準関数定義は怠惰ではありません。
次に、 Ozで末尾再帰である次の関数を示します。
これは、空のリストを空のリストと空でないリストにマップし、関数をそのヘッドに適用した結果にマップし、その後、テールF
を呼び出した結果の前に追加します。Map
他の言語では、これは末尾再帰ではありません。これは、最後の操作が先頭であり、への再帰呼び出しではないためMap
です。
だから私の質問は:「Ozの標準関数定義が怠惰ではない」場合、SchemeやErlangのような言語がこの関数の末尾再帰最適化を実行できない(またはできない)ので、Ozは何をしますか?そして、関数がOzで末尾再帰になるのはいつですか?
oz - リストを Oz の文字列に変換しますか?
Ozでリストを文字列に変換する方法は?
文字列に変換する必要がある文字のリストがありますが、Oz のドキュメントには連結演算子がありません。
oz - そしてOzキーワード
トークナイザーを書き込もうとしていますが、解析エラーが発生します。
これがコードです。15行目と36列目に%= ERROR =%のマークを付けました。
私が間違っていることについて何か考えはありますか?
oz - mozart/oz の新しいバージョンはありますか?
新しいバージョンの mozart/oz があるかどうか知りたいのですが、現在は 1.4 です。それは 2008 年のことです。進歩があったに違いありません。
constraints - Mozart / Ozで非数値制約を作成するにはどうすればよいですか?
変数のドメインが数値ではない([lisa ann mary joanna]のような)CSPを実装したいと思います。Mozart / Ozでこれを実現する方法はありますか?
function - Mozart Ozの同じコードでは、関数とプロシージャの動作が異なりますか?
2つのアプローチを使用してOzでフィボナッチ数列を印刷してみます:エディターとしてEmacを使用する関数と手順。手順はここにあります:
および機能:
問題は、プロシージャ「ループ」が機能することだけです。結果は次のとおりです。
関数「Loo」はそうではなく、理解しにくいエラーをスローします。
理由はまだわかりません。私が思うに、機能と手順はOZでも同様の効果があります。
constraints - Mozart / Ozで、変数のタプルをこれ以上制約できないかどうかを確認します
ご挨拶、
このアイデアは、例を挙げて説明するのが最適です。
ベクトルがあるとしvec(a:{FD.int 1#100} b:{FD.int 1#100} c:{FD.int 1#100})
ます。このベクトルに制約を追加できるようにしたいのですが、追加するすべての制約がそれ以上の情報を追加しなくなるまで、たとえば、制約vec.a
はvec.b
ありませんvec.c
。
Mozart / Ozでそれを行うことは可能ですか?
そう考えたいと思います。
ループ内:
- 制約ストアにアクセスし、
- 変更されているか確認してください
- 変更がない場合は終了します。