問題タブ [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 に答える
609 参照

functional-programming - ML の新機能: a* a* a* 型の戻り値を格納する方法

int*int を返すプログラムがあります

(説明のための例): fun program(a,b) = (1,2)

私は線に沿って何かをしたい:

fun program(a,b)
if a = 0 then (1,2)
else
val x,y = program(a-1,b)
return (x-1, y)

基本的には、返されたタプルを操作してから、その変更を返したいと考えています。

ありがとう

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

sml - SML を使用してシーザー暗号を解読する

シーザー暗号を解読することになっています。関数を宣言してcrack : int * int -> int、が(k, c)復号化されたテキストと暗号化されたテキストである場合、 を呼び出すために必要なキー (mod 10) が返されるようにする必要があります。たとえば、呼び出すと 4 が返されます。intkccrack(k, c)nckcrack(20458790, 64892134)

cが正しくエンコードされていない場合k、関数は実際に機能する必要はありません。

ここで十分に明確であることを願っています。ここでの実際の割り当ては理解していますが (k と c があり、n が必要です)、コードでそれを表示する方法がわかりません。

0 投票する
4 に答える
12902 参照

sml - SML でタプルのリストをどのように操作しますか?

私は SML が初めてで、タプルのリストで要素を取得する方法を知りたいと思っていました。たとえば、リスト[("abc", 4), ("def", 6)]では、どのように抽出できます"abc"か? 私はもう試した

しかし、「未解決のフレックスレコード」が引き続き表示されます。助言がありますか?

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

sml - SMLとチャーチ数

データ型を使用してSMLにチャーチ数を実装する必要がある割り当てがあります:datatype'a Church = C of(' a-'a)*' a->'a

関数create:int->'a Churchと関数churchTointを作成する必要があります。これまでのところ、次のコードがあります。

私はかなり近いことを知っています。これを正しく実装するのを手伝ってもらえますか?ありがとう

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

functional-programming - SMLの関数を組み合わせる

ねえ、SMLとプログラミングにまったく慣れていないので、リスト内で結合する関数を作成したいと思います。たとえば、[x1、x2、x3、x4、...] = [(x1、x2)、(x3、x4) 、...]正しい方向に進むためのヒントや助けをいただければ幸いです。

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

sml - チャーチ数の前身を取得する方法

私はSMLで練習していて、次のように定義されたチャーチ数を実装する必要がある小さな割り当てを行っています。

例val

私はすでに関数を実装しました:

SUCチャーチ数の後継を返します。

今、私は関数を実装する必要があります

(前の、現在の数字)のタプルを返します。使用は許可されていませんchurchToInt。チャーチ数を直接使用する必要があります。どうやらこれは特定の引数を渡すことによって1行で解決可能です。

SUC正しい数字になるまで何度も使うことを考えていましたが、2つのチャーチ数を比較する方法がありません。私はこれに完全に固執しています。

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

equality - SML のリストの等価性のチェック

たとえば、SML でリストの等価性をチェックする関数を書きたい: [1,2,3]=[1,2,3]; val it = true : bool

したがって、すべてを書き留める代わりに、事前定義された 2 つのリストを取り、それらを比較する関数を作成して、list01 = [1,2,3] および list09 = [1,2,3] の場合に fun equal になるようにしたいと考えています。 (list01,list09); -val it = true : bool; を返します。

アイデア/ヒントとヘルプを事前にありがとう:)

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

tree - SML のサブツリーの削除/削除

ねえ、ツリーを指定して関数 delete をプログラムしたいのですが、ツリー内のノードを削除できるので、元のツリーからノードとこのノードのサブツリーを差し引いたものを返す必要があります。すべてのヒントが役立ちます。事前に感謝します:)

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

list - ツリーから要素のリストを返す SML 関数で例外が発生する

SML の課題があり、質問の 1 つは関数を実装することです

これまでのところ、次のものがあります。

基本的にfindAll、bool 関数を受け取り、この関数を満たすすべてのノードを例外の形で返します。元の(レイズアンサー)内に(レイズアンサー)があるため、コードが機能しない理由はわかっていますが、どちらにしてもこれはコンパイルされません。これを修正するにはどうすればよいか考えていました。すべての要素を取得してから例外を呼び出すヘルパー関数を呼び出すことはできませんが、例外を運ぶ値を使用する必要があります。また、すべての要素を順番に返すことができるはずです。

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

tree - ツリーへのノードの削除と追加

課題がありますが、どうしたらよいかわかりません。私には、名前、生年月日、死亡年の人の木があります。ここで系図を考えてください。年齢、名前、ツリー自体などを処理するためのデータ型がたくさんあり、次に人とツリーがたくさんあります。

データ型は次のとおりです。

まず、この位置とその「下」にあるすべてのものを削除できるようにする必要があります。したがって、「Mom」を削除すると、お母さんとその両親、祖父母などが削除されます。呼び出された位置に人がいない場合、関数はツリーを返す必要があります。これは次のようになっているはずです:remove:Tree*親リスト->Treeそして呼び出しはremove(t、pos)です

これは私が持っているものですが、それは完全には正しくありません。私は4行でそれを行うことができると言われました。

私が持っているアイデア:

しかし、それは正しくありません。私は何をしますか?

また、位置posのツリーtに人pを挿入できるはずです。位置が存在しない場合は、ツリーを返すだけです。挿入:ツリー*親リスト*人->ツリー

私はこれに頭を悩ませることができず、誰かが私を助けてくれることを望んでいます。私はこれで十分に明確になっていることを願っています(私はそれが長いことを知っています)。