問題タブ [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.
python - 命令型プログラミングから関数型プログラミングへの変換 [Python から標準 ML]
1 つの変数の多項式関数を評価する必要があることを示す関数仕様があります。関数の係数はリストとして与えられます。また、変数の値を実数として受け入れます。
例: eval(2, [4, 3, 2, 1]) = 26 (1*x^3 + 2*x^2 + 3*x^1 + 4*x^0、x = 2)
これはPythonの関数ですが、SMLに変換する方法がわかりません。関数のパラメーターを変更せずに反復値を渡す方法を見つけるのに苦労しています。実数 * 実数リスト -> 実数関数のままである必要があります。
algorithm - SMLで巡回セールスマンを解決するには?
Standard ML で巡回セールスマンの問題を解決できる人はいますか?教えてください。
私はたくさん試しましたが、成功していません。
list - StandardMLのリストからツリーに要素を挿入します
私は自分でSMLを学び始めたばかりで、チュートリアルからの質問に行き詰まっています。私が持っているとしましょう:
ツリーデータ型
挿入機能
整数リスト
私の質問は、リスト内の各要素をループしてツリーに追加する関数を追加して作成するにはどうすればよいですか?
あなたの答えは本当にありがたいです。
sml - SMLのカレー無名関数
私は以下の機能を持っています、そしてそれは働きます:
しかし、これは機能しません:
誰か教えてもらえますか?または、それを機能させるためのヒントを教えてください。
sml - SML/NJの不完全な一致
SML/NJコンパイラで非網羅的な一致警告をどのように処理するのだろうか。たとえば、データ型を定義できます
そして、FOOだけを取ると私が知っている機能を持っています
コンパイラは警告を出します
意図的に行った不完全な一致の警告は表示したくありません。出力をスキャンして、実際にはバグである可能性のある警告を見つける必要があるためです。このような関数を書くことができます
しかし、これはコードを乱雑にします。この状況で人々は通常何をしますか?
sml - infix、infixr、infixlの違い
サンプルプログラムで infix、infixr、infixl を使用している本を読みました。私は違いが何であるか疑問に思っています。infixr は右から左へ、またはその逆に操作を実行すると推測しています。
user-input - SML / NJ:ユーザー入力の取得
関数の実行中にユーザー入力を求めるにはどうすればよいですか?
haskell - 再帰の前に map/reduce/etc を教えたり学んだりした経験はありますか?
私が見る限り、Scheme を使用した関数型プログラミングで反復構造を教える通常の (そして私の意見では最良の) 順序は、最初に再帰を教えてから、map、reduce、およびすべての SRFI-1 手順などに取りかかることです。これはおそらく、再帰により、学生は反復に必要なすべてのものを持っているためです (また、必要に応じて SRFI-1 のすべてを書き直すことさえできます)。
SRFI-1 のいくつかの手順を使用し、それらが十分でない場合 (たとえば、関数を近似する場合) にのみ再帰を使用するという、逆のアプローチが試みられたことがあるかどうか疑問に思っていました。結果は良くないと思いますが、このアプローチの過去の経験について知りたいです。
もちろん、これは Scheme に固有のものではありません。この質問は、関数型言語にも当てはまります。
再帰の前に「アプリケーション プログラミング」(コンビネータの使用) を教えている本の 1 つに、Dave Touretsky のCOMMON LISP: A Gentle Introduction to Symbolic Computationがあります。
include - 2つの署名を含み、両方とも「タイプt」[標準ML]
不自然な例:
明らかに、これはでtype t
2回発生する苦情を引き起こしC
ます。t
しかし、2つを同等にして、最終的に次のようにしたいと表現する方法はありますか。
のようなあらゆる種類のばかげた構文を試しinclude B where type t = A.t
ましたが、当然のことながら機能しませんでした。試し忘れたことはありますか?
また、これは言語の構文に明らかな(または欠如している)ものがないかチェックすることで簡単に答えられることを知っていますが、インターネット上のどこにも完全な文法を見つけることができませんでした。
(FWIW、私がこれをやろうとしている実際の理由は、Haskellスタイルのモナドなどです。ここで、aはaとMonadPlus
aの単なる混合です。現時点では、inの内容を繰り返しているだけです。理想よりも。)Monad
Alternative
ALTERNATIVE
MONAD_PLUS