問題タブ [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.
increment - C の `++` の Scheme 版
Chickena=0; a++;
のようなことをしている変数をインクリメントするにはどうすればよいですか?
Common Lisp ではincf
、次のように使用します。
incf
しかし、Chicken-scheme には関数/マクロがないようで、apropos
卵のようなものを使用してみましたが、これまでのところまったく役に立ちませんでした。
C では、次のように変数をインクリメントします。
注a
、一時的にの値を単純に増やす方法を知りたくあり1
ません。 a
a
0
1
したがって、以下は私が望むものではありません:
以下は、私が探しているものの例です -- NewLisp で書かれています:
注 関数/マクロは、引用符で囲まれた変数を受け入れ、その変数の値を永続的にインクリメントできる必要があります。したがって、次の C コードと同等である必要があります。
Chicken でこれを行うためのマクロを書きたいところですが、Chicken のマクロの頭も尻尾もわかりません。まったく意味がありません。それらは common-lisps マクロのようなものではありません。
これは私が common-lisp で一緒にハックしたマクロの例です:
string - 文字列 X から char を何度も削除する
文字列から文字を削除する必要がありますが、を指定する方法がわかりません。これは、チキン で削除するcount
回数の制限です。character
string
Common Lisp でそれを行う方法は次のとおりです。
Chicken-schemeでそれを行うにはどうすればよいですか?
私はdelete
Chickenで使用してみましたが、Chicken'sは何かdelete
をサポートしていないようですcount
ので、以下は機能しません:
そしてdelete
、文字列で実行するだけで、次のすべての出現が削除されますchar
。
scheme - チキンスキームで動作するように SublimeRepl を設定するには?
Sublime Text 2 と SublimeRepl を構成してチキン スキームを使用できる人はいますか?
Sublime で Chicken repl を取得しましたが、chicken スキームからのみ (おそらく csi プロセスの stderr 出力から) エラー メッセージが表示されますが、プロンプトも評価値も表示されません。
何か助けはありますか?
scheme - チキンスキームの bind と bind*
Chicken のスキーム コードの次のスニペットがあります。
int_exp
およびsquare
は、テスト用に作成した小さなテスト関数 (C で記述) にすぎません。このコードは問題なく動作します。ただし、アスタリスクを削除するとすぐに、コンパイルされたプログラムは偽の値を出力します (偽の値は、clang を使用して C コードをコンパイルしたか gcc を使用してコンパイルしたかによって異なります) 。だけでなく、 foreign-declare
"および"[ includes] 与えられた文字列を逐語的に生成されたファイルのヘッダーに挿入する"を使用して、生成されたスキーム展開にコードを埋め込みforeign-declare
ます。私がチキン (そして実際にはスキーム) に慣れていないことを考えると、どちらも特に役に立ちません。 、bind
ととの違いは何bind*
ですか? どちらを使用する必要がありますか?
scheme - チキンスキームでリストを循環リストに変換しますか?
そのようなリストを変換する方法を見つけようとして、 Scheme ストリームと循環リストに出くわしまし た。ただし、その答えには、チキンスキームでは利用できないラケットの機能が必要です。代わりにチキンスキームでこれを行う方法を教えてもらえますか? それともスキーム・バリアント・ニュートラルな方法で?