問題タブ [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.

0 投票する
2 に答える
980 参照

functional-programming - SML のプロトタイピング関数

2 つの関数 と がfありg、これらは相互に再帰的に呼び出します。残念ながら、 をf呼び出すとg、まだ宣言されていないため、「バインドされていない変数」エラーが発生します。SML/NJ でこの関数をどのようにプロトタイプ化できますか (または同等の語彙が何であれ)。

0 投票する
3 に答える
1750 参照

queue - SML/NJでキューライブラリを使用するにはどうすればよいですか

SML/NJにキュー構造が含まれていることがわかります。使い方がわかりません。SML / NJが提供する追加のライブラリを使用するにはどうすればよいですか?

0 投票する
9 に答える
15256 参照

f# - パターン マッチングとスイッチの説明

switch ステートメントとパターン マッチング (F#) の違いを何人かの人に説明しようとしてきましたが、うまく説明できませんでした..ほとんどの場合、彼らは私を見て「なぜif..then..else だけを使用しないでください。

彼らにどのように説明しますか。

編集!すばらしい回答をありがとうございます。複数の正解をマークできればと思います。

0 投票する
1 に答える
426 参照

sml - ビットレベルでファイルを比較するSML

SMLを使用してディレクトリ内のファイルを比較しようとしています。TextIOライブラリの使用はかなり簡単ですが、ファイルをビットレベルで比較する必要があります。つまり、バイナリ比較です。私はこれに似た関数を使用しています:

特定のディレクトリ内のすべてのファイルを一覧表示します。しかし今、私は各ファイルのビットを見る必要があります。助言がありますか?

0 投票する
2 に答える
1020 参照

functional-programming - Standard MLでポリモーフィック値を印刷するにはどうすればよいですか?

Standard ML(具体的にはSML / NJ)でポリモーフィック値を印刷する方法はありますか?私は自分が望むことをしていないポリモーフィック関数を持っていて、SMLでデバッグしているひどい状態のために(実稼働関数型プログラムをデバッグする実際の経験はありますか?)、それがいくつかの良いことで何をしているのかを見たいです- ol' print's。簡単な例は(プロンプトで)次のようになります。

他の提案をいただければ幸いです。それまでの間、問題のあるコードをじっと見つめて提出します。

アップデート

私はバグを見つけることができましたが、将来の痛みや苦しみを防ぐことを期待して、質問はまだ残っています。

0 投票する
7 に答える
8008 参照

prolog - SML は何に使用されますか?

本当の意味での SML の用途は何ですか?

その実用的な用途は Prolog と似ていますか?

0 投票する
2 に答える
1386 参照

sml - SML/NJ インタラクティブ ループをカスタマイズするにはどうすればよいですか?

私は標準 ML を初めて使用し、SML/NJ ランタイム環境について理解しようとしています。私はそれを私のニーズに合わせたいと思っています。具体的には、次のことを行います。

  • デフォルトで IntInf を使用
  • 文字列と IntInf が 70 文字に切り捨てられないようにします。

8 時間以上かけてドキュメントを読み、実験してわかったことを次に示します。

コマンドを使用して、int の上に IntInf をオーバーロードできます

変数 Control.Print.stringDepth を使用して、表示される文字列の文字数を制御できます。たとえば、これにより、切り捨てられる前に 1000 文字が表示されます。

IntInf 値に対して同じことを行うにはどうすればよいですか? 深さを無限に設定することはできますか (つまり、切り捨てはまったくありません)?

IntInf を開くことは、IntInf で int をオーバーロードする最良の方法ですか?

最後に、実行時にこれをすべて自動的にロードして、「sml」を呼び出したときにデフォルト環境になるようにするにはどうすればよいですか?


編集: Control.Print.intinfDepth というオプションがあり、大きな数値 (999999 など) を設定できることがわかりました。ただし、無限にする方法はわかりません。

私の他の質問はまだ答えられていません。


編集: Kansas State のクラス向けに、この SML/NJ カスタマイズのセットに出くわしました。独自のバナー メッセージを表示し、「val it = true : bool」を表示しないようにするには、SMLofNJ.exportML の戻り値をテストする必要があります。そうであれば、ヒープ イメージが復元された (つまり、起動された) だけであり、メッセージを表示できます。false の場合、ヒープ イメージは保存されたばかりです。

0 投票する
1 に答える
14698 参照

sml - SML の case ステートメント内にどのように出力しますか?

私は SML を使い始めたばかりで、何をしているのかを理解するためにいくつかのコードを変更しようとしています (適切な SML/NJ デバッガーが見つかりませんが、それは別の質問です)。

これは、constant_int が既に宣言されているデータ型の一部であるなどの有効なコードであると仮定します。「"整数" を返す」という print ステートメントをケースに追加するにはどうすればよいですか? 私は試した:

しかし、私は得る:

一連のステートメントを実行する方法を理解していないだけだと思います。最後のステートメントのみを戻り値として扱う必要があります。何かアドバイス?

また、自分のデータ型の値をどのように出力しますか? データ型の値を print() に渡そうとしたときに SML が気に入らなかったので、データ型ごとに新しい印刷関数を作成する必要があると思いますが、正しいですか?

0 投票する
2 に答える
2670 参照

sml - SMLで型を強制する方法(キャストなど)

Rationals(int * int)の構造を作成していて、関数の1つは次のとおりです。

gcdは私に最大公約数を与えるので、私は2/8ではなく、本来の1/4になります。gcdはmodを使用してgcdを検索するため、intを返します。しかし、除算を使用した式をintとして入力することはできません。diff宣言の最後に追加しようとする: int * intと、式real*realとint*intが一致しないという型エラーが発生します。

整数除算を強制したり、式を整数にキャストしたりするにはどうすればよいですか?両方が可能であれば、どちらが良いですか?