問題タブ [r6rs]
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を使用して出力するためにdisplayを使用する必要がありますか?
背景:私はスキームに不慣れで、DrSchemeを使用してプログラムを作成しています。
次のプログラムは、プログラムをr5rsとして実行すると、12345を出力します。
ただし、次のプログラムは何も出力しません(これはr6rsプログラムです)。
そうは言っても、これを行うことで12345を出力することができます。
これはr6rsの新しいもので、出力はを使用して具体的に指定された場合にのみ発生しdisplay
ますか?それとも私は何か他のことをしているだけですか
scheme - コンパイラがそれらを認識する前に、すべてのプロシージャを定義する必要があるのはなぜですか?
たとえば、次のコードを見てください(tspl4から):
これをスキームのプログラムとして実行すると...
このエラーが発生します:
...このコードは正常に機能します:
macros - 誰かが私に「衛生」の概念を説明できますか(私はスキームプログラマーです)?
だから...私はスキームr6rsに不慣れで、マクロを学んでいます。誰かが「衛生」とはどういう意味かを私に説明できますか?
前もって感謝します。
lambda - マクロの一部だけを衛生的にする方法
lambda
という名前の のバージョンがlambda-r
欲しいのですが、そこから ができreturn
ます。例:
これにより、値が得られます6
。値が 7 であることを期待するかもしれませんが、2 に到達する前にラムダ式から 1 が返されるため、6 です。
これは、私が探している種類の変換の例です。次のように使用するlambda-r
とします。
私はそれを次のように変換したい:
これは、内部定義の代わりに let 式で表現することもできますが、わかりやすくするために定義を使用しています。
上記のコードは実際には期待どおりに機能することに注意してください。問題は、マクロlambda-r
として表現するのに苦労していることです。理由は、衛生的でありたいが、衛生的でありたくないからです。k
v
return
現時点での私のマクロは次のとおりです。
return
は衛生的に扱われ、その結果、使用時に直接見えないため、これは機能しませんlambda-r
。そのため、有効な識別子(lambda-r () (return 1))
ではないというエラーが表示されます。return
編集: Nathan Sanders の回答のおかげで、ここで何をしなければならないかを理解することに近づいています。ただし、次の手順を完全には理解していないため、これをまだ機能させることができていません。以下を説明するリソースについて説明/案内していただければ幸いです。
syntax
手順_datum->syntax
/syntax->datum
手順_
編集:気にしないでください-私は今それを手に入れました:)
scheme - スキームの参照渡し
スキームで変数を参照渡しするにはどうすればよいですか?
私が欲しい機能の例:
また、参照で返す方法はありますか?
scheme - r6rsで構文キーワードを再定義する
次のコードに「Hello、world!」と表示されるrnrs-modifiedというライブラリを作成するにはどうすればよいですか...?
またはこれでさえ良いでしょう(実際にはおそらくもっと良いです):
基本的に、ライブラリ内の構文キーワード(let、lambda、set!など)を再定義し、そのライブラリを別のライブラリまたはトップレベルプログラムにインポートして、それらの再定義されたキーワードを使用できるようにしたいと考えています。
しかし、私はこれを取得し続けます:
rnrs-modifiedに使用しているコードは次のとおりです。
何か案は?
更新:これは「mzschemeモジュール」で見つかりました。これはr6rsスキーム用ではありませんが、それが提供する機能は基本的に私が探しているものです。provide all-from-except
r6rsスキームでどのようにできますか?
functional-programming - スキーム: R6RS のみを使用して、フロナムの仮数と指数を決定する方法
v = fxb
^e
f - 仮数
b - ベース
e - 指数
例: 3.14 = 0.785 x 2^2
サポートされていない場合は、flonum の (IEEE 754) ビットに直接アクセスして、上記の値を抽出する問題に取り組みたいのですが、flonum を一連のバイト (バイトベクトル) に変換する関数が見つかりませんでした。
ありがとうございました。
lisp - さまざまなSchemeR6RS実装の利点
Schemeでプログラミングを始めたいのですが、さまざまな実装が混乱しています。さまざまな実装の長所または短所は何ですか?
scheme - スキームにおける評価の順序
これが機能します:
これは機能しません:
obj1
が評価されたときに値を使用するにはどうすればよい(cadar karaktersobjectenlijst)
ですか?
scheme - オブジェクトのコピーを返すにはどうすればよいですか?
引数が 1 つの関数を実装する必要があります -- obj
-- これは、評価されると のコピーを返す Scheme 式を返しますobj
。
問題を進める方法についてのアイデアはありますか?