問題タブ [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.
c - このコードの consed オブジェクトの car と cdr が整数の場合、どのように出力できますか?
c でスキームを実装するクロス コンパイラを構築しようとしています。このために、コンスとリストを使用して基本的なスキーム構造を実装しようとしています。以下に示すコードは短所用です。consed オブジェクトが整数であり、別の consed オブジェクトではない場合、consed オブジェクトの car にアクセスできません。
vector - ベクトルを追加してスキーム内のベクトルを変異させる
私は、Scheme におけるベクトルの基本的な実装を知らないので、vector-append!
プロトタイプ:
vector-ref
PSは一定時間の操作であるため、リストよりもベクトルを使用することをお勧めします[src]
scheme - SchemeでSUM関数を書くには?
埋め込まれたリストの数値を合計するスキームで関数を作成する方法は?
すなわち ((1) (2 3) (4) (5 6))
通常のリストを合計するためにこれを書きました:
しかし、埋め込みの方法がわかりません。
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 で真理値表を実装するには、どのような手順に従う必要がありますか? 数式内にサブ数式が存在する場合があることに注意してください。
scheme - map、filter、または fold-right を使用した文字列のリストからの長さのリスト
文字列のリストが表示されます。
この手順をそのようなリストに適用すると、入力内の各文字列の長さのリストが得られるような手順を生成します。
map
、filter
、またはを使用しfold-right
ます。
次のコードで行き詰まりました。 の使用方法がわかりませんfilter
。
mit-scheme - プロシージャ内で定義された変数は保持されますか?
手順を書きました(do-test)
。テストは変数に何らかの影響を与える可能性があるため、手順で実行されないことを期待して内部env
で定義したため、実行するたびに新しい環境で作業できます。驚いたことに、私のテスト手順は実際には以前の. 次のコードを見つけてください。env
do-test
env
env
mit-scheme / guile / codepad.org を使用してこのコードを実行しようとしましたが、(do-test)
2 回実行すると異なる結果が得られました。
しかし、行(define env '(1))
をに変更する(define env (list 1))
と、期待どおりの結果が得られます。( codepad.org で変更前後の私のコードを見つけることができます)
私の知る限りでは、2 番目が call procedure であることを除いて、同じである必要があり'(1)
ます。(list 1)
list
なぜこれが起こるのか、プログラムが以前の値を再利用しないようにするにはどうすればよいでしょうか?
emacs - emacsのバッファでmit-schemeコードを評価しますか?
M-x eval-buffer
バッファ内の Lisp コードを評価します。バッファに書かれた mit-scheme コードを評価するにはどうすればよいですか?