私は現時点でsmlnjを勉強しようとしており、折り畳み機能に問題があります。 私がしようとしているのは、折りたたみパターンを使用して関数とリストを取り込む関数selectを書くことです。リストの先頭を関数に渡して、その要素をリストに追加するかどうかを決定します。ここに私が意味するものの例があります。 select (fn x => x mod 2 = 0) [1,2,3,4,5,6,7,8,9
標準のMLで、2つのパラメータを取り、boolを返す関数を作成しようとしています.2つのパラメータは、仕様では'a * 'a -> boolと書かれていますが、試してみると2つのパラメータ自動的にints。どのようにして関数に2つのパラメータ 'a'を取らせることができますか? 次関数アイブが実装しようとしている。 fun lessThan (a, b) =
if a < b then
私が取り組んでいる問題は、整数のリストを取り、それらの数値の平均を返す必要があります。それは次のようになり、特定のフォーマット... fun average (n::ns) =
let
val (a,b) = fold? (?) ? ?
in
real(a)/real(b)
end;
私は疑問符を置き換えるために許可されてるだけですし、任意の関数に組み込まれて使用することはできません
は、次のSML機能を考えてみましょう: fn x => x x
これは、次のエラー(ニュージャージー州のv110.72の標準ML)生成します。これは許可されていない理由 stdIn:1.9-1.12 Error: operator is not a function [circularity]
operator: 'Z
in expression:
x x
を
私はml-lexで整数と実数を検出するプログラムを書こうとしています。私のプログラムは次のようなものです: datatype lexresult = INTEGER of string | REAL of string | EOF
val linenum = ref 1;
val error = fn x => output(stdOut,x^"\n");
val eof = fn() =>