問題タブ [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 に答える
304 参照

lisp - チキンスキームのdefstructで作成されたデータ構造のすべての「部分」を印刷する方法

上記のコードがあるとしましょう:

(tree-height ココナッツ) を使用してココナッツの高さを表示できることは知っていますが、1 つのコマンドでココナッツのすべての情報を確認するにはどうすればよいでしょうか? 私はまた、生成する (tree->alist ココナッツ) を試しました: ((height . 30) (age . 5) (leaf-color . 'green)) しかし、次のようなものは使用できません: (for-each pp ココナッツ)。そのようにすることは可能ですか、それとも適切なコマンドで私の印刷ツリーを書くことが唯一の解決策でしょうか?

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

lisp - リストまたはconsesを含むリストの検索

このようなリストを取得したとしましょう(より多くの要素がありますが、メソッドは同じである必要があります):

また、既存のリストにいつでも要素を追加できます。これが最も効果的な方法で、ユーザーの名前を受け取り、名前を返す関数を作成するとします。

何かのようなもの :

そのような場合の一般的な習慣は何ですか?誰かが方法の例/リンクを指摘できますか?

0 投票する
3 に答える
1254 参照

list - すべてがスキームのリストですか?

「SimplyScheme」(第2版)という本と一緒に、YouTubeで「ComputerScience61A-Lectures」を見ています。講義では、家庭教師はStk通訳を使用していますが、私はチキンスキーム通訳を使用しています。

最初の講義では、彼は「最初の」手順を使用します。

「h」を返します。

「SimplyScheme」の本には、最初に実装する方法の例があります。

私のテストと理解にとって、送信された場合に機能するのはリストです。スキームで「すべてがリストである」と言うのが適切かどうかを理解しようとしています。より具体的には、「こんにちは」のリストはどこにあり、リストがある場合は、本に書かれているように最初の手順で機能しないのはなぜですか?

また、すべての実装が「すべてがリストである」ことを念頭に置いて記述されている場合、同じコードがすべてのスキーム実装で機能しないのはなぜですか?

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

garbage-collection - スタック制限に関するプラットフォーム固有の情報を取得するにはどうすればよいですか

私はChickenSchemeのスタイルでメモリ割り当てを行うインタプリタを作って遊んでいます。基本的な考え方は次のとおりです。

サンプルの手順は次のとおりです。

私が知る必要があるのは、STACK_LIMITの値がどうあるべきかです(スタックが大きくなるか下がるかも知る必要があります)。スタック制限に関するプラットフォーム固有の情報を取得するにはどうすればよいですか?

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

java - スタック制限を確認し、JavaでChicken Schemeスタイルの再帰を実行するにはどうすればよいですか?

次のコードを検討してください。このコードは、ほとんどの場合関数が直接呼び出されるチキンスキームスタイルの再帰をほぼ実装していますが、より複雑なトランポリン手順が存在する場合もあります。ただし、コードは正しく機能しません。私が本当に必要としているのは、スタックオーバーフローの危険性があるかどうかを示すブール値を返すメソッドstackLimitsAlmostReachedです。スタック制限を確認し、JavaでChicken Schemeスタイルの再帰を実行するにはどうすればよいですか?

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

function - 可変個引数関数の定義方法

argumentsJavascriptの配列に似たものを探しています:

可変引数の長さのドット表記とスキームのapply機能を認識しています。

ドットが最初の引数と見なされるため、これは機能しないようです。

これは機能しますが、理想的ではありません。args リストを定義するための追加の構文を使用せずに関数を呼び出したいと思います。

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

scheme - スキームを使用して開発されたウィンドウマネージャはありますか?

今では、stumpwm が私の毎日のデスクトップです。それは素晴らしいです、そして私はそれがとても好きです。stumpwm は、実用的な FP 言語である common lisp を使用して開発されています。

Scheme は一般的な Lisp よりも古いものです。また、スキームを使って開発されたアプリケーションは少ないようです。スキームが単に教育に応用できるかどうか?

よろしく!

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

syntax - Chicken Scheme は複素数をサポートしていますか? もしそうなら、なぜこのエラーが発生するのですか?

私は少しばかり Scheme を学び始めたばかりで、Fixnum Days で Dorai Sitaram の Teach Yourself Scheme を使用しています。同著では次のように述べられている。

スキーム番号は、整数 (例: 42) ... または複素数 ( 2+3i ) にすることができます。

鉱山を強調します。フォームに注意してください。

これまでに教えられた原則を使用して、さまざまな種類の数を処理するいくつかの異なるプログラムを作成してみました。複素数をテストするために、この非常に単純なスニペットを作成しました。

これをcodepad.org (MzScheme を使用) とIdeone.com (guile を使用) でテストすると、完全に機能しました。

ここで、Chicken Scheme (私のローカル開発環境) で試してみたところ、問題なくコンパイルされましたが、実行するとクラッシュしてエラーが発生しました。

どうやら、バインドされていない変数エラーがありますが、私の制限されたスキームでは、それが何を意味するのかさえわかりません(まだ.)

他の誰かがこれを経験しましたか?Chicken Scheme はかなり標準に準拠していると思われるので、このような単純なものをサポートしないのは奇妙に思えます。ドキュメントをグーグルで調べましたが、具体的なものは見つかりませんでした(ただし、外部の複素数ライブラリが利用できると思うので、おそらくそれがヒントです。)

誰か提案があれば、大歓迎です。前もって感謝します!:)

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

compilation - コンパイルされた環境でeggを使用するにはどうすればよいですか?

これは私の前の質問のフォローアップです。残念ながら、Chicken Schemeはデフォルトで複素数をサポートしておらず、numbersインストール可能なエッグを提供しているようです。

を介してこのeggをインストールchicken-install numbersしましたが、解釈された環境にロードできます。use;を呼び出すことでこれを行うことができます。REPLで手動で実行するか、.scmファイルをスクリプトとして実行しますcsi

たとえば、このスクリプトは完全に機能します。

で実行する場合:

しかし、これとまったく同じスニペットをcsc(追加のフラグがなくても)コンパイルすると、ロードしなかった場合と同じランタイムエラーが発生します(バインドされていない変数など)。コンパイルされた環境ではそうではないようですuse。マスタードをカットします。

他に注意すべき2つの点は、ドキュメントによると、、などの他のインポート関数を試しましrequire-extensionrequire-libraryが、違いはありません。numbersもう1つは、モジュールの名前を「たとえば」以外に変更するnumberssと、拡張機能を読み込めないと文句を言ってコンパイルに失敗するため、少なくともnumbersライブラリがインストールされていることを検出していることは明らかです。

誰かが、できればコンパイルされた環境で卵を使用する方法を簡単な実例を通して説明できますか?前もって感謝します!:)

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

random - スキームでランダム関数を正しくシードする方法は?

私は、Scheme の起動randomize時に、現在の時刻をシードとしてプロシージャーが呼び出されたという印象を受けました。ただし、Scheme スクリプトが のみで構成されている場合、(print (random 10))受け取る出力は7;のみです。他の番号はありません。それで、私は何を間違っていますか?記録のために、私は Chicken Scheme を使用しています。