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

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

scheme - r6rsを使用して出力するためにdisplayを使用する必要がありますか?

背景:私はスキームに不慣れで、DrSchemeを使用してプログラムを作成しています。

次のプログラムは、プログラムをr5rsとして実行すると、12345を出力します。

ただし、次のプログラムは何も出力しません(これはr6rsプログラムです)。

そうは言っても、これを行うことで12345を出力することができます。

これはr6rsの新しいもので、出力はを使用して具体的に指定された場合にのみ発生しdisplayますか?それとも私は何か他のことをしているだけですか

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

scheme - コンパイラがそれらを認識する前に、すべてのプロシージャを定義する必要があるのはなぜですか?

たとえば、次のコードを見てください(tspl4から):

これをスキームのプログラムとして実行すると...

このエラーが発生します:

...このコードは正常に機能します:

0 投票する
6 に答える
6005 参照

macros - 誰かが私に「衛生」の概念を説明できますか(私はスキームプログラマーです)?

だから...私はスキームr6rsに不慣れで、マクロを学んでいます。誰かが「衛生」とはどういう意味かを私に説明できますか?

前もって感謝します。

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

lambda - マクロの一部だけを衛生的にする方法

lambdaという名前の のバージョンがlambda-r欲しいのですが、そこから ができreturnます。例:

これにより、値が得られます6。値が 7 であることを期待するかもしれませんが、2 に到達する前にラムダ式から 1 が返されるため、6 です。

これは、私が探している種類の変換の例です。次のように使用するlambda-rとします。

私はそれを次のように変換したい:

これは、内部定義の代わりに let 式で表現することもできますが、わかりやすくするために定義を使用しています。

上記のコードは実際には期待どおりに機能することに注意してください。問題は、マクロlambda-rとして表現するのに苦労していることです。理由は、衛生的でありたいが、衛生的でありたくないからです。kvreturn

現時点での私のマクロは次のとおりです。

returnは衛生的に扱われ、その結果、使用時に直接見えないため、これは機能しませんlambda-r。そのため、有効な識別子(lambda-r () (return 1))ではないというエラーが表示されます。return


編集: Nathan Sanders の回答のおかげで、ここで何をしなければならないかを理解することに近づいています。ただし、次の手順を完全には理解していないため、これをまだ機能させることができていません。以下を説明するリソースについて説明/案内していただければ幸いです。

  • syntax 手順_
  • datum->syntax/syntax->datum手順_

編集:気にしないでください-私は今それを手に入れました:)

0 投票する
7 に答える
5559 参照

scheme - スキームの参照渡し

スキームで変数を参照渡しするにはどうすればよいですか?

私が欲しい機能の例:

また、参照で返す方法はありますか?

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

scheme - r6rsで構文キーワードを再定義する

次のコードに「Hello、world!」と表示されるrnrs-modifiedというライブラリを作成するにはどうすればよいですか...?

またはこれでさえ良いでしょう(実際にはおそらくもっと良いです):

基本的に、ライブラリ内の構文キーワード(let、lambda、set!など)を再定義し、そのライブラリを別のライブラリまたはトップレベルプログラムにインポートして、それらの再定義されたキーワードを使用できるようにしたいと考えています。

しかし、私はこれを取得し続けます:

rnrs-modifiedに使用しているコードは次のとおりです。

何か案は?


更新:これは「mzschemeモジュール」で見つかりまし。これはr6rsスキーム用ではありませんが、それが提供する機能は基本的に私が探しているものです。provide all-from-exceptr6rsスキームでどのようにできますか?

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

functional-programming - スキーム: R6RS のみを使用して、フロナムの仮数と指数を決定する方法

v = fxb
^e
f - 仮数
b - ベース
e - 指数

例: 3.14 = 0.785 x 2^2

サポートされていない場合は、flonum の (IEEE 754) ビットに直接アクセスして、上記の値を抽出する問題に取り組みたいのですが、flonum を一連のバイト (バイトベクトル) に変換する関数が見つかりませんでした。

ありがとうございました。

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

lisp - さまざまなSchemeR6RS実装の利点

Schemeでプログラミングを始めたいのですが、さまざまな実装が混乱しています。さまざまな実装の長所または短所は何ですか?

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

scheme - スキームにおける評価の順序

これが機能します:

これは機能しません:

obj1が評価されたときに値を使用するにはどうすればよい(cadar karaktersobjectenlijst)ですか?

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

scheme - オブジェクトのコピーを返すにはどうすればよいですか?

引数が 1 つの関数を実装する必要があります -- obj-- これは、評価されると のコピーを返す Scheme 式を返しますobj

問題を進める方法についてのアイデアはありますか?