問題タブ [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.

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

scheme - このエラー「定義の前の識別子への参照: with」を解決する方法

私は「プログラミング言語: アプリケーションと解釈」を勉強しており、実行後に DrRacket 5.2.1 で最初の 2 つの章の例を実行でき#lang plaiます。しかし、第3章の最初の例を次のように入力したとき:

次のエラーが発生しました。

withこの本には の定義が見つかりませんでした。図書館は必要ですか?

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

scheme - DrRacket 5.2.1 を使用して Emacs で PLAI コードを編集および実行する方法

私はPLAIを勉強しています。現在、第 3 章のコードを DrRacket で ( を使用して#lang plai) 実行していますが、DrRacket の初心者です。Emacs だけでコードを編集して実行できますか?

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

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)))

前もって感謝します!

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

scheme - PLAI の第 9 章の最初のプログラムで、プログラムの実行に含まれるステップ

PLAIの第9 章「再帰を理解する」の冒頭に、階乗の例があります。

90 ページで、著者は次のように述べています。このエラーが発生することを確認してください。エラーを完全に理解することは、このセクションの残りの部分を理解する上で不可欠です。」
しかし、手順を完全に書き留めることができるかどうかはわかりません。誰かが手順を書き留めるのを手伝ってくれませんか? よろしくお願いします!

0 投票する
5 に答える
2068 参照

scheme - このように 2 つのリストを取り、1 つのリストを返すスキーム関数の書き方

この機能を実装する方法

2 つのリストを取得する場合 (abc)、(de)

リストを返す (a+d b+d c+d a+e b+e c+e)

リスト要素はすべて整数で、結果リストの要素順序は自由です

私はこのように試しました

しかし、結果が '() であるため、エラーが返されます

この問題の解き方がわかりません 助けてください

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

scheme - Scheme Racket シャドウ変数チェック

変数がシャドウされているかどうかを確認する関数が必要ですか? 関数は、変数がシャドウ化されているかどうかに基づいて #t または #f を返す必要があります。コードの実装には DrRacket を使用しました ( #lang plai )。これまでのところ、私はこれを持っています...

これは、変数がシャドウされているかどうかをチェックする関数ですが、機能しません

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

tree - #ラングプライラケットマルチプライヤー機能

私は、プログラミング言語コースで使用する plai-typed 言語に慣れるためのプロジェクトに取り組んでいます。私は本当に私を悩ませている 1 つの質問に行き詰まっています (残りはすべて問題なく終了しました)。このデータ型定義を使用します。

次に、「関数 'scaled' を実装します。この関数は、ツリーを受け取り、同じ形状を持つツリーを返しますが、すべての値が指定されたスケールで乗算されます。

例: (scaled (node -5 (leaf 6) (leaf -7)) 2) should Produce (node -10 (leaf 12) (leaf -14))"

したがって、基本的には、これらすべての値を特定の値 (この例では 2) で乗算する必要があります。

さまざまな方法を試した後、これまでのところ私が持っているものは次のとおりです。

私は、割り当ての他の部分のために作成した以前のコードに基づいて、正しく理解しました。問題は、各値を個別に乗算するのではなく、すべての数値と結果を 420 の解で「正常に」乗算することです。これは「n」の配置に関係していることはわかっていますが、運が悪く、さまざまな方法を試しました。誰かに役立つヒント/ヒント/解決策があれば、大歓迎です。

ありがとう!

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

racket - BNF 文法を s 式に変換する

という文法を定義しましたmsl

に変換するパーサー関数がありs-expressionますmsl

msl私の質問は次のとおりです。式をこのように変換するにはどうすればよいs-expressionですか? 私はこのテーマの初心者です