問題タブ [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 - R6RS 対 R5RS スキーム
私はスキームに比較的慣れていないため、R6RS で発生した主な変更点を概説する具体的なドキュメントをオンラインで見つけるのに苦労しています。誰か詳しく説明したいですか?
scheme - スキーム、SICP、R5RS、なぜ遅延は特別な形式ではないのですか?
これは、ストリームが議論されているSICPの3.5章に関するものです。アイデアは次のとおりです。
cons-streamの2番目の部分を評価するべきではないので、「hey」を出力するべきではありません。これは実際に発生します。次の出力が得られます。
hey(1。#<promise>)
だから私の結論は、遅延は特別な形として実装されていないということですか?それとも私は何か間違ったことをしていますか?私は次の実装を使用します:
遅延がデフォルトのR5RS実装です。これは実装の誤りですか、それとも私はそれを正しく行っていないか、理解していませんか?
scheme - スキームリストを引数に分割してプロシージャに渡すにはどうすればよいですか?
長さが異なる数の事前定義された(max)
関数(R5RS)を使用したいと思います。list
残念ながら、(max)
次のような入力を受け入れます。
私はそれを次のように使おうとしています:
これにより、次のエラーが発生します。
このリストを必要な個々の引数に分割するにはどうすればよい(max)
ですか?
numbers - ANTLR: R5RS字句構造の文法、数字の問題
DLTK を使用して、Eclipse でスキーム用の IDE を実装しています。これまでのところ、語彙構造を認識する文法をプログラミングしています。
私はここで見ることができる公式の EBNF に従っています:
http://rose-r5rs.googlecode.com/hg/doc/r5rs-grammar.html
数字の文法の単純な形式を取得できません。たとえば、10進数、私は持っています
問題は、何も認識していないことです。PREFIX_10 からの警告またはその解決方法がわかりません。ルールでフラグメントを使用しない場合、ファイルはコンパイルされません。これは、DIGIT_10 ルールが他のほとんどすべての以前のルールと同じ入力に一致することに文句を言うためです。
num_2、num_8、num_16 と同じです。
さらに、空の文字列の解決策がわかりません。
どうやってここに行くの?
scheme - スキームの準引用のためのANTLR文法
EBNFで次の文法を検討する:http:
//pauillac.inria.fr/cdrom_a_graver/www/bigloo/manual/r5rs-8.html
与えられた準引用文法は文脈自由ではありません:
文脈自由文法用に設計されていますが、ANTLRでこの文法を定義することは可能ですか?
scheme - 非 LL(*) 問題と構文述語を解決する ANTLR
パーサーで次のルールを検討してください。
と
式ルールの procedure_call と macro_rule の代替は、非 LL(*) 構造エラーを生成します。(IDENTIFIER)
両方として解析されるので、私は問題を見ることができます。ただし、* の代わりに + を使用して両方を定義しても、上記の例はもう解析されていないにもかかわらず、エラーが発生します。
構文述語の使用法を思いつきましたが、ここでトリックを行うためにそれらを使用する方法がわかりません。
何かのようなもの
また
最初のルール以外は何にも一致しないため、どちらも機能しません。それを解決する適切な方法はありますか?
scheme - ファイルの読み取り:構文が正しくありません(識別子の後に複数の式があります)
エラー:定義:構文が正しくありません(識別子の後に複数の式があります)
しかし、私はそれで何も悪いことを見ることができません。誰かがそれを説明/修正してもらえますか?
string - なぜ(eq?'bitBlt(string-> symbol "bitBlt"))-> #f
R5RS6.3.3によると
これはそれを意味しますか
elkは#tを返します!
R5RSも言います
(おそらくこれは'mISSISSIppiを意味します)
と
これは、symbol-> stringが標準の場合(この例では小文字)で文字列を返すことを意味します。
したがって、2番目の例を拡張すると
したがって
シンボルはR5RSでは大文字と小文字を区別しないため
したがって、元の質問を拡張すると
したがって
右?しかし、R5Rは#fと言います!
ここでどこが間違っているのですか?
なぜこの動作が指定されるのでしょうか?
参照:
http://people.csail.mit.edu/jaffer/r5rs_8.html#SEC49
http://bugs.call-cc.org/browser/numbers/r4rstest.scm?rev=1行468
実際のセッション例:
scheme - スキーム R5RS - 未定義の識別子
教科書「Teaching Nondeterministic and Universal Automata using Scheme」のコードをテストしようとしています。DrRacket を R5RS として設定しました。
コードの定義部分をコピーしましたが、まだ問題が発生しています
未定義の識別子への参照: read-only-tape
関連するコードは次のとおりです。
ここでは読み取り専用テープを使用しています。
私はそれを実行します
教科書の例です。定義コードを無視していますか?