問題タブ [chicken-scheme]

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 に答える
161 参照

scheme - CHICKEN-Scheme でのコンパイル済みライブラリの動的ロード

可能であれば、CHICKEN-Scheme でコンパイルされたコードを動的にロードする最良の方法を知りたいです。API はload、ソース ファイルのみをロードすると述べています。

具体的には、コードを動的にロードする際の私の目標は、以前に定義された関数を上書きできるようにすることです。つまり、ライブラリ 1 にあるものは、ライブラリ 2fooの別のものに置き換えられます。foo

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

function - スキーム: Let から Lambda への変換

そのため、いくつかのコードを試して、letlambdaの 2 つのスキーム表現方法を変更しようとしています。

私が持っているコードは次のとおりです。

最も外側のlet定義をラムダ形式に変更しようとしていますが、コードのネストされた性質のために少し混乱しています。私がこれまでにやろうとしたことは次のとおりです。

これは明らかに間違っていますが、さらに先に進む方法がわかりません...

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

scheme - 関数定義で無手続き呼び出し?

オンラインでSchemeの簡単な紹介を見つけましたが、この機能に少し問題があります。

呼び出してみると、次のようになります。

そのエラーはチキンスキームから来ています.Chezスキームでも同じ結果が得られています.

文字列をタイトルの大文字と小文字に変換し、以前に取得したエラー メッセージから、次のようにします。call of non-procedure: "Star Wars Iv: A New Hope"

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

scheme - Chicken コンパイラではパターン マッチング コンパイル エラーが発生するが、Chicken インタープリタではエラーが発生しない

パターン マッチングを機能させようとしていますが、コンパイラではなく Chicken インタープリターでしか機能しません。

インタープリターでの例を次に示します。

コンパイルされたバージョンは次のとおりです。

これは失敗します ( csc src/test.scm):

私は何を取りこぼしたか?

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

compiler-errors - Chicken Scheme: ロードまたはコンパイル時に警告/エラー メッセージが表示されない

しばらくチキン スキームをいじっていましたが、何か変わったことに気付きました。次の単純なソース ファイルがあるとします。

これが機能しないことは (人間の Bean にとって) 明らかです。起動してcsiこの関数定義を手動で入力すると、次のメッセージが表示されます。

知っておくと便利です。大規模なプログラムを実行する前に、タイプミスを見つけるのは良いことです。csiそれでは、もう一度起動してload、ファイルを試してみましょう。

出力:

また良い。csiでは、そのファイルで起動してみましょう!

ええと...エラーメッセージはどこに行きましたか? なぜそこにないのですか?さて、実際にコンパイルしようとすると文句を言うかもしれません...

いいえ。(f 2)ファイルの最後に行を追加しても( f-function が最適化されないようにするため) 、エラー メッセージや警告は表示されません。

なんで?インタープリター (または少なくともその手動load部分) はこの問題にすぐに気付くことができますが、コンパイラーはそれができません。おかしなこと-no-warningsに、コンパイラには引数があります。予想どおり、警告がないため何もしません。

私は何が欠けていますか?どうすれば修正できますか?それは修正できますか、それとも実際にプログラムを自信を持ってコンパイルする前にload、関連するすべてのファイルを手動で手動で作成する必要がありますか?csi

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

function - スキームラムダ関数のデフォルト引数?

最近 ChickenScheme の使用を開始しましたが、デフォルトの引数 (指定されていない場合) を使用して関数を宣言したいと考えています。Racket のサイトでこの例を見つけました。Racket と ChickenScheme が異なることは知っていますが、基本的なことは同じだと思いました。

これは ChickenScheme インタープリターからのエラーです。

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

macros - Chicken Scheme マクロから他のマクロを呼び出すには?

Common Lisp からChicken Schemeに移行しようとしていますが、多くの問題があります。

define-syntax私の現在の問題は次のとおりです:他のマクロを呼び出すマクロ (おそらく ? を使用) を作成するにはどうすればよいですか?

たとえば、Common Lisp では、次のようなことができます。

一方、Scheme では、同等のコードは機能しません。

マクロからマクロを呼び出すことはappend-toできませんsomething-elseappend-to「変数」が未定義であるというエラーが表示されます。

私が Google や他の情報源から収集したすべての情報によると、マクロは他のコードにアクセスすることなく、閉じた環境で評価されます。基本的に、組み込みの Scheme 関数とマクロを除いて、マクロが評価されるときは何も存在しません。er-macro-transformersyntax-case(とにかくChickenでは非推奨になっています)、さらにはprocedural-macrosモジュールを使用してみました。

確かに、マクロの全体的な目的は、コードの繰り返しを避けるために、他のマクロの上に構築されることです。マクロを単独で作成する必要がある場合、それらはほとんど役に立たない、と私は考えています。

私は他のスキームの実装を調査しましたが、もう運がありませんでした。それは単にできないようです。

誰かがこれを手伝ってくれますか?