問題タブ [plai]
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 - このエラー「定義の前の識別子への参照: with」を解決する方法
私は「プログラミング言語: アプリケーションと解釈」を勉強しており、実行後に DrRacket 5.2.1 で最初の 2 つの章の例を実行でき#lang plai
ます。しかし、第3章の最初の例を次のように入力したとき:
次のエラーが発生しました。
with
この本には の定義が見つかりませんでした。図書館は必要ですか?
scheme - DrRacket 5.2.1 を使用して Emacs で PLAI コードを編集および実行する方法
私はPLAIを勉強しています。現在、第 3 章のコードを DrRacket で ( を使用して#lang plai
) 実行していますが、DrRacket の初心者です。Emacs だけでコードを編集して実行できますか?
racket - PLAIの76ページからの{with {x 3} {+ xx}}の評価
私はPLAIの Chapter8 "Implementing Laziness" を勉強していて、以下の CFAE/L を終えました:
このインタープリターによると、page76 の
(1) 入力時:
(interp (parse '{with {x 3} {+ xx}}) {mtSub}) 以下のようなエラーが発生しました:
numV-n: 契約違反、期待値: numV?、指定: (exprV (num 3) (mtSub)) 契約元: numV-n、非難: 使用契約: (-> numV? number?) at: /study/lisp /plai/chapter8.scm:10.9
(2) page76 の説明を理解するために、次のように手順を手書きで書き留めておきたいと思います。これらを処理します: それ (および同様に他の算術プリミティブ) は、式のクロージャが対応する数を正確に知る必要があります。」私のステップがあります: (interp (parse '(with (x 3) (+ xx))) (mtSub))
step1: (parse '(with (x 3) (+ xx))) => (app (fun 'x (add (id 'x) (id 'x))) (num 3))
step2: (cloSureV 'x (add (id 'x) (id 'x)) (mtSub)) (as fun-val)
step3: (interp (add (id 'x) (id 'x)) (aSub 'x (num 3) (mtSub)))
前もって感謝します!
scheme - PLAI の第 9 章の最初のプログラムで、プログラムの実行に含まれるステップ
PLAIの第9 章「再帰を理解する」の冒頭に、階乗の例があります。
90 ページで、著者は次のように述べています。このエラーが発生することを確認してください。エラーを完全に理解することは、このセクションの残りの部分を理解する上で不可欠です。」
しかし、手順を完全に書き留めることができるかどうかはわかりません。誰かが手順を書き留めるのを手伝ってくれませんか? よろしくお願いします!
scheme - このように 2 つのリストを取り、1 つのリストを返すスキーム関数の書き方
この機能を実装する方法
2 つのリストを取得する場合 (abc)、(de)
リストを返す (a+d b+d c+d a+e b+e c+e)
リスト要素はすべて整数で、結果リストの要素順序は自由です
私はこのように試しました
しかし、結果が '() であるため、エラーが返されます
この問題の解き方がわかりません 助けてください
scheme - Scheme Racket シャドウ変数チェック
変数がシャドウされているかどうかを確認する関数が必要ですか? 関数は、変数がシャドウ化されているかどうかに基づいて #t または #f を返す必要があります。コードの実装には DrRacket を使用しました ( #lang plai )。これまでのところ、私はこれを持っています...
これは、変数がシャドウされているかどうかをチェックする関数ですが、機能しません
tree - #ラングプライラケットマルチプライヤー機能
私は、プログラミング言語コースで使用する plai-typed 言語に慣れるためのプロジェクトに取り組んでいます。私は本当に私を悩ませている 1 つの質問に行き詰まっています (残りはすべて問題なく終了しました)。このデータ型定義を使用します。
次に、「関数 'scaled' を実装します。この関数は、ツリーを受け取り、同じ形状を持つツリーを返しますが、すべての値が指定されたスケールで乗算されます。
例: (scaled (node -5 (leaf 6) (leaf -7)) 2) should Produce (node -10 (leaf 12) (leaf -14))"
したがって、基本的には、これらすべての値を特定の値 (この例では 2) で乗算する必要があります。
さまざまな方法を試した後、これまでのところ私が持っているものは次のとおりです。
私は、割り当ての他の部分のために作成した以前のコードに基づいて、正しく理解しました。問題は、各値を個別に乗算するのではなく、すべての数値と結果を 420 の解で「正常に」乗算することです。これは「n」の配置に関係していることはわかっていますが、運が悪く、さまざまな方法を試しました。誰かに役立つヒント/ヒント/解決策があれば、大歓迎です。
ありがとう!
racket - BNF 文法を s 式に変換する
という文法を定義しましたmsl
に変換するパーサー関数がありs-expression
ますmsl
msl
私の質問は次のとおりです。式をこのように変換するにはどうすればよいs-expression
ですか? 私はこのテーマの初心者です