問題タブ [mit-scheme]

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 投票する
1 に答える
117 参照

c - このコードの consed オブジェクトの car と cdr が整数の場合、どのように出力できますか?

c でスキームを実装するクロス コンパイラを構築しようとしています。このために、コンスとリストを使用して基本的なスキーム構造を実装しようとしています。以下に示すコードは短所用です。consed オブジェクトが整数であり、別の consed オブジェクトではない場合、consed オブジェクトの car にアクセスできません。

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

vector - ベクトルを追加してスキーム内のベクトルを変異させる

私は、Scheme におけるベクトルの基本的な実装を知らないので、vector-append!

プロトタイプ:

vector-refPSは一定時間の操作であるため、リストよりもベクトルを使用することをお勧めします[src]

0 投票する
3 に答える
5376 参照

scheme - SchemeでSUM関数を書くには?

埋め込まれたリストの数値を合計するスキームで関数を作成する方法は?

すなわち ((1) (2 3) (4) (5 6))

通常のリストを合計するためにこれを書きました:

しかし、埋め込みの方法がわかりません。

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

scheme - Scheme で真理値表を生成する

仕様を以下に示します。

式は次のとおりです。

  • 真理値、つまり、またはのいずれ#t#f
  • 変数すなわちp, q, r, ...
  • (not formula)
  • (and formula1 formula2)
  • (or formula1 formula2)

真理値表は行のセットです。行にはバインディング(I t)が含まれます。ここIで、真理の代入、つまりバインディングのセットです(p t)Iでなければなりません:

  • 一貫性のある
  • 完了

tは評価関数 によって生成されますV(formula, I)Vと定義されている:

  • V(t,I) = t
  • V(p,I) = tバインディング(p t)I
  • V((not formula), I) = (not (V (formula I)))
  • V((and formula1 formula2), I) = (and V(formula1 I) V(formula2 I))
  • V(( or formula1 formula2), I) = (or V(formula1 I) V( formula2 I))

Scheme で真理値表を実装するには、どのような手順に従う必要がありますか? 数式内にサブ数式が存在する場合があることに注意してください。

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

scheme - map、filter、または fold-right を使用した文字列のリストからの長さのリスト

文字列のリストが表示されます。

この手順をそのようなリストに適用すると、入力内の各文字列の長さのリストが得られるような手順を生成します。

mapfilter、またはを使用しfold-rightます。

次のコードで行き詰まりました。 の使用方法がわかりませんfilter

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

mit-scheme - プロシージャ内で定義された変数は保持されますか?

手順を書きました(do-test)。テストは変数に何らかの影響を与える可能性があるため、手順で実行されないことを期待して内部envで定義したため、実行するたびに新しい環境で作業できます。驚いたことに、私のテスト手順は実際には以前の. 次のコードを見つけてください。envdo-testenvenv

mit-scheme / guile / codepad.org を使用してこのコードを実行しようとしましたが、(do-test)2 回実行すると異なる結果が得られました。

しかし、行(define env '(1))をに変更する(define env (list 1))と、期待どおりの結果が得られます。( codepad.org で変更前後のコードを見つけることができます)

私の知る限りでは、2 番目が call procedure であることを除いて、同じである必要があり'(1)ます。(list 1)list

なぜこれが起こるのか、プログラムが以前の値を再利用しないようにするにはどうすればよいでしょうか?

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

emacs - emacsのバッファでmit-schemeコードを評価しますか?

M-x eval-bufferバッファ内の Lisp コードを評価します。バッファに書かれた mit-scheme コードを評価するにはどうすればよいですか?