問題タブ [sml]
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.
type-inference - 型推論の制限は何ですか?
型推論の制限は何ですか? 一般的な推論アルゴリズムを持たない型システムは?
data-structures - 無向グラフを表現するのに適したデータ構造は何ですか?
無向グラフを作成する必要があります。あまり派手なことをする必要はありませんが、理想的には次のように機能します。
これらの関係をモデル化するための SML/NJ の適切なデータ構造はありますか? 私は自分で巻くべきですか?
アップデート
先に進んで自分でロールしようとしましたが、テストしようとすると型の不一致エラーが発生します。私の SML 構造とファンクターの経験はかなり基本的なものなので、明らかに間違ったことをしていると思います。これを機能させるにはどうすればよいですか?また、これを作るのを手伝ってもらえます'a graph
か? 意味的には、それはより理にかなっているようです。
コード
エラー
私がする時
タイプの不一致が発生します:
operators - SML / NJで二項演算子のカレー形式を取得する方法はありますか?
たとえば、代わりに
私はむしろ持っていたい
で使用するため
明らかに、私は自分でこれを行うことができます、例えば、
しかし、私はもっとエレガントな方法を見逃していないことを確認したいと思います。
structure - 構造内の署名
次のように、署名/構造のペアを構造内に配置したい:
ただし、最も単純な例でもエラーが発生します。
署名は構造内では許可されていないようです。この機能を実現する最善の方法は何ですか?
user-interface - Standard MLのGUI?
私は最近、好奇心からStandardMLを学び始めました。だから私が知っているのは、パフォーマンスを気にせずに抽象化を自由に使用できる効率的なコンパイラ(MLton)があるということです。
StandardMLでGUIプログラミングもできるといいですね。Standard ML用のGtk、Qt、またはWxWidgetsバインディングのようなものはありますか?
どうもありがとうございます。
functional-programming - 標準 ML の概要
ある種の「初心者向け ML」ガイドを探しています。これまでのところ、Google のおかげで、あいまいなメーリング リストや頭のおかしいテキストにたどり着きました。
問題は、これまで関数型プログラミングの経験がまったくなく、概念に頭を悩ませることが、予想よりもはるかに困難であることが判明したことです。たとえば、私が今やろうとしているタスク (はい、大学 :)) は、2 つのリスト (a,b) と (c,d) の間のマッピングを行うことで、結果は (a,d) のリストになります) b = c のペアから。
私が通常行うことは次のとおりです。
しかし、私はそのようなものを SML で実装することを始めることさえできません。たとえば、ネストされたリストを反復処理できることを知っていますmap f list
。ただし、ランタイム (SML/NJ) は、パラメーターとしてリスト要素のみを取る関数に対してのみこれを受け入れます。しかし、一度に 2 つのリストの 1 つしか操作できない場合、どの要素を返す必要があるかを知るにはどうすればよいでしょうか?
私は、この種のことを、できれば大きな親しみやすい文字と多くのコード例で説明するリソースを切実に必要としています:/
functional-programming - SML/NJ-動的型付けのパターンマッチング
動的に型指定された入力パラメーターを使用して関数を作成することは可能ですか?パターンマッチングを試しましたが、どうやらこのようには動作しません。
私はこのようなことをしたいです:
ありがとうございました。
functional-programming - このStandard-MLタイプのエラーの原因は何ですか?
この非常に単純なSML関数の末尾再帰バージョンを作成しようとしていました。
この過程で、私はパラメータに型注釈を使用していました。次のコードはこれを示しており、タイプエラーが発生します(以下を参照)が、タイプアノテーションを削除するだけで、SMLは問題なくそれを受け入れ、関数全体に上記のより単純な関数と同じシグネチャを与えます。
エラー:
与えられた2つのエラーがあります。後者はここではそれほど重要ではないようです。suffixes_helperの2つの句の不一致です。最初は私が理解していないものです。'a:list
最初のパラメータがタイプであり、2番目のパラメータがタイプであることを示すために注釈を付け'b:list
ます。私が理解しているように、一般的な統一の最上位に構築されているHindley-Milner型推論アルゴリズムは、?の置換を使用して、で'b:list
統一できるべきではありません。'a:list list
'b ---> 'a list
編集:答えは、ある意味で型注釈によって与えられたものよりも厳密な推論された型を許可しない型推論アルゴリズムと関係があるかもしれないことを示唆しています。このようなルールは、パラメーターと関数全体の注釈にのみ適用されると思います。これが正しいかどうかはわかりません。いずれにせよ、型アノテーションを関数本体に移動しようとすると、同じ種類のエラーが発生します。
エラーは次のとおりです。
if-statement - モスクワML-1つの関数に複数のifステートメント
関数の一部に問題があります。私の関数は、エラーを回避するために少なくとも3文字の入力文字列を必要とします。これを行うには、1つまたは2つの「。」を追加します。変数で。次のようになります。
機能コード;
私の質問は、最初のif行をどのように終了するのですか?これで、ifステートメントでエラーが発生します。
ありがとう/joakim