sml

    2

    1答えて

    1.0 = 2.0はなぜ機能しませんか? 本物は同等型ではありませんか? それはエラーを与える: Error: operator and operand don't agree [equality type required] operator domain: ''Z * ''Z operand: real * real in expression: 1

    0

    2答えて

    私は、次のコードを持っている: datatype eInt = infinity of int | 0 | Int of int; exception undefined; fun eAdd(e1:eInt, 0:eInt) = e1 | eAdd(0, e2) = e2 | eAdd(e1, infinity) = infinity | eAdd(infini

    1

    1答えて

    私は、次のコードを実行しているとき、私は取得しています「一致冗長」エラーについて少し混乱しています:正確なエラーのマッサージがある datatype expression = Constant of int | Variable of string | Operator of string * expression | Pair of expression

    0

    1答えて

    私はEmacsを使って約4行のsmlで単純な関数を書いています。関数を呼び出すときに/バッファ内で評価するときには3ドットで末尾 val it = [1,2,2,2,2,2,2,2,2,2,2,2,...] : int list 最終的にどのような点がありますか?私のコードはドットを印刷しません。これはEmacsかsmlか?何かヒントをお願いします。 はまた、私は [1,2,2,2,2,2,2

    6

    1答えて

    私はこのようにSMLでy-コンビネータを書くことができます: 真円度のために型の不一致を回避するために、まず新しいデータ型を宣言します。 val Y = fn f => (fn x => fn a => f (unroll x x) a) (Roll (fn x => fn a => f (unroll x x) a))) は、その後、あなたが行われて、あなたはこのようにそれを使

    1

    2答えて

    ケースの表現(クラスの次のセクションにあります)を使用せずに、私はクイックソートをやっていない理由を理解できません。それはどこかのループに入り、決して終わらない。 splitAtとappendは既に厳しくテストされていますが、ここではそれらのコードがあります。 fun append(xs, ys) = if null xs then ys else (hd xs) :: append(tl

    0

    2答えて

    私は2つのリストを持っています。彼らはお互いに常に同じ長さであり、このおもちゃの例のように見えるかもしれません。実際の内容は予測できません。 val original = [1, 2, 0, 1, 1, 2] val elements = ["a","b","c","d","e","f"] 私は次のリストを作成したい: val mappedList = [["c"],["a","d","e"

    0

    2答えて

    私はSMLには新しいので、3つの整数(n、z、k)を取り、プログラムで指定された値と比較するプログラムを作成しました。正しい場合はtrueを返し、そうでない場合はfalseを返します。条件と値は同時に等しくなければなりません。これらの数値がすべてプログラムの値と等しい場合、プログラムは真を返すので、私のif文は3つの条件を同時にチェックする必要があります。 私の問題は、SMLが例えば&または^と!

    0

    1答えて

    このコードは何が問題になりますか? fun expd s:string = if size(s) > 0 then true else false; 私が受け取るエラー: - fun exnd s:string = if size(s) > a then true else false; stdIn:657.1-837.8 Error: unbound variable or construct

    0

    1答えて

    以下は、私が推測する関数を宣言する方法の1つです&同じスタイルを使って同様のことをしたいのですが、それはなぜ機能しないのですか? fun length nil = 0 | length (_::l') = 1 + (length l') "case expression of"構文を使用せずにこれを実行します。すなわち、それは1 fun x 3 = 0 | x (4) = 1 Here