問題タブ [r5rs]
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.
scheme - Guileスキームと標準スキーム(Racket IDE)の違いは?
RacketSchemeIDEで実行したい「レガシー」GuileSchemeコードがたくさんあります。これを重要な演習にするのに十分な違いがあるようです。(Schemeの知識の私のレベルは、The Little Schemerを完了するためのレベルです)。
私の質問は:
- Guileスキームと標準スキーム(Racket IDE内)の違いは何ですか?
- これらの違いに照らして、一般的に、いくつかのGuileスキームコードを標準スキームに変換するために必要な手順は何ですか?
追加: (RacketSchemeとR5RS/R6RSの相違に満足)-私が欲しいのは、Racket言語ではなく、RacketIDEで「何か」を実行することです。
macros - マクロをリストにマップする方法-または-マクロを使用してデータ型を定義する方法
私は自分のデータ型でREPLを作成するのが好きですが、同じパターン関数を何度も何度も書くのは好きではありません。
だから、これは私を悩ませているナッツです。
独自のプリミティブデータ型のセットを取得しました(define primitives '("mytrue" "myfalse" "mynumber" ...))
また、私は持っています(define primitiveTesters (list "mytrue?" "myfalse?" "mynumber?" ... )
問題は、データ型を取得するために(マップ)またはマクロを適用したいだけですか?基本的に、記録された車が存在するかどうかをチェックするだけの手順(mynumber . ( . ))
。
つまり、最終的には似たようなもの(mynumber? (car (mynumber.(1.))) => #t
になります。しかし、これには私が必要です(define mynumber? (lambda (...)(...))
私のdefine-batchingマクロはこのように見えますが、を注入する運がありません<variable>
。
それで、私は計画の行き止まりに達しましたか?
私はEmacsLispで似たようなものを見たと思います。
私が最終的に探しているのは:
recursion - スキーム再帰関数
ねえ、私は次の問題に悩まされていて、正しい機能を思い付くことができないようです.
正の整数 k が与えられたとき、積 k を計算する再帰関数を書きます。
プログラムは通常、メモリがなくなるまで実行されます。これが私の方法です:
事前に助けてくれてありがとう...
scheme - SICP演習1.5および1.6
質問に加えて、SICP の演習 1.6 の説明は何ですか? . Dr. Racket (R5RS) は sqrt-iter 関数を "if" 付きで有限時間で評価し、正常な順序評価を明確に示しています。しかし、演習1.5の例を使用すると
無限ループに入り、「if」が適用可能な順序評価を使用していると思わせます。どこが間違っているのですか?
scheme - スキーム二分探索木エラー (R5RS)
私は、Scheme と関数型言語全般についてまったくの初心者です。二分探索木を作成しようとしています。ノードの形式は 3 つの要素のリストです。1 つ目はノードの値、2 つ目は左側の子ノード、3 つ目は右側の子ノードです。空のツリー ( () () () ) を作成する「make」関数があります。挿入機能もあります。コードは次のとおりです。
テストするために、次の行を実行します。
次に、次のエラーが表示されます。
かっこを確認して再確認しました...そしてデバッグモードで実行すると、ツリーに2を挿入する最後に失敗することがわかります。までは、計画通りに機能します。これは私の愚かな構文/論理エラーの原因ですか?
scheme - スキームエラー、順序付きリストとして二分探索木を返す(R5RS)
私はSchemeの初心者です。二分探索木があります。ノードの形式は3つの要素のリストであり、1つ目はノードの値、2つ目は左側の子ノード、3つ目は右側の子ノードです。「make」関数は、次のような空のツリーを作成します:(()()())。ツリーを作成し、値を挿入して、ツリーに特定の値が存在するかどうかを確認できます。私の問題は、ツリーを順序付きリストとして返す関数を書き込もうとしたときに発生します。関数の挿入と作成:
それらはうまく機能します。これが私のas-listです:
これを実行すると、「mpair?」を予期していると言って、契約違反が発生します。これが私の側の論理エラーであるとは思わないが、そうかもしれない。これは別の括弧の問題ですか?
お時間をいただきありがとうございます!
scheme - スキーム乗算リスト項目
私は何度も何度も見ましたが、この質問に対する答えが見つからないことに驚きました。
R5RS スキームでは、リストの各要素を相互に乗算する手順をどのように記述しますか。リスト '(4 5 6) が与えられた場合、プロシージャ Multiply-List は 120 を返す必要があります。4*5*6=120.
前もって感謝します。
scheme - 関数を返すスキーム関数が予期しない値を返しています
私はスキームに機能を持っています
ここで、mf は返される関数です。
ただし、値を返すのではなく、
コードにエラーがないように見えるのに、なぜこれが使用可能な値を返さないのでしょうか?
list - リストするスキーム番号
34109 などの整数を取り、それを要素 3、4、1、0、9 のリストに入れるスキームで記述された私のプログラム用のサブルーチンが必要です。整数は任意の長さにすることができます。誰もこれのためのトリックを持っていますか? すべての場所でモジュロを使用することを考えましたが、それほど複雑であるべきではないと思います。
scheme - スキームは、行列オブジェクトのコンストラクターとセレクターを定義します
単純な 2x2 マトリックスのコンストラクターとセレクターを開発しようとしていますが、作成したものが正しいかどうかはわかりません。これは、4 つの要素を持つリストを取り、2x2 を作成します。
これは機能します...しかし、セレクターを適切に使用しているかどうかはわかりません。