問題タブ [guile]
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.
dictionary - ガイルスキームでは、キーと値のペアのリスト (つまりハッシュマップ) をどのように反復できますか?
私は、純粋な関数型プログラミングの概念に慣れるために、ずる賢く遊んでいます。どの言語でも役に立つことを行う前に、いくつかの基本的なデータ構造と、それらを効果的に操作する方法を理解する必要があります。特に、列挙可能なデータ構造についてです。
このようなリストを繰り返すことができます (これを正しくインデントしているかどうかはわかりません):
ハッシュテーブル/ハッシュマップはスキームでどのように見えますか? それを表す実際のデータ構造はありますか、それともリストのリストを作成することになりますか? その場合、キーと値を内部リストから別の変数として取得するにはどうすればよいでしょうか?
ラムダは 2 つではなく 1 つの値を想定しているため、これは明らかに間違っています。
私がやろうとしていることに相当する Ruby は次のようになります。
lambda - 「裸の」仮パラメータでラムダ定義を使用するのはいつですか?
私は現在 Guile Scheme を学んでおり、ドキュメンテーションで突然次の構造に出くわしました:
これは私をループに陥れました。この時点まで、仮パラメーターは常にリストで囲まれていると想定していました。
このバリアントをいつ使用するのか、これが可変数の引数のドット表記とどのように異なるのか疑問に思います。具体的には、次の 2 つのバリアントの違いは何ですか。
おそらくより複雑な例では、注意する必要がある違いはありますか?また、どちらかを優先する理由はありますか?
scheme - シンボルがプロシージャかどうかを確認する方法
リストをチェックしてプロシージャ呼び出しがあるかどうかを確認するマクロを作成しようとしていますが、その方法がよくわかりません。私の頭に最初に浮かぶのは、手順を使用することですか?チェックする関数ですが、機能しません。私がやろうとしていることの例は次のとおりです。
現在、そのリストの car は を返します+
が、関数はまだ を返しますfalse
。
リストの車が手順かどうかを確認する方法はありますか?
macros - guileのスキーム:let-構文は無効ですか?
関数型プログラミングの割り当てのために、私はスキームコードをコーヒースクリプトコードに変換するスキームマクロを書いています。Linux Mint 12でguileを使用していて、(use-syntax(ice-9 syncase))をアクティブにしています。
現在、let-syntaxをdefine-syntaxにネストしようとしていますが、予期しない「無効な構文」エラーが発生し続けます。私はスキームの初心者なので、プログラミングの習慣が悪い場合はご容赦ください。:)
私のコード:
と私の出力:
このエラーを何度か調べてみたところ、基本的なことを理解していないだけだと思い始めました。私はあなたがdefine-syntaxの中にlet-syntaxをネストできると確信していました。私は何が間違っているのですか?
lisp - 末尾再帰コラッツ予想がSchemeでスタックオーバーフローを引き起こすのはなぜですか?
私はSchemeでコラッツ予想を書きました:
これは末尾再帰呼び出しですが、呼び出すとスタック オーバーフローが発生します (C 121):
適切な末尾再帰がオーバーフローを引き起こすのはなぜですか? ご覧のとおり、Scheme インタープリターとして Guile を使用しています (バージョン 1.8.7)。
gtk - Guileでモジュールを使用する方法は?`$ guile copy.scm; エラー:モジュールのコードがありません(gnome-2) `
私はSchemeについてbasiscを学び、Guileを試してみたいと思います。このサンプルを最初のサンプル
にコピーしてスクリプトとして実行すると、エラーが発生しました。
私のラップトップはFedora16x86_64を実行yum install guile*
し、Guileのモジュールを処理する方法は?
scheme - Guileスキームと標準スキーム(Racket IDE)の違いは?
RacketSchemeIDEで実行したい「レガシー」GuileSchemeコードがたくさんあります。これを重要な演習にするのに十分な違いがあるようです。(Schemeの知識の私のレベルは、The Little Schemerを完了するためのレベルです)。
私の質問は:
- Guileスキームと標準スキーム(Racket IDE内)の違いは何ですか?
- これらの違いに照らして、一般的に、いくつかのGuileスキームコードを標準スキームに変換するために必要な手順は何ですか?
追加: (RacketSchemeとR5RS/R6RSの相違に満足)-私が欲しいのは、Racket言語ではなく、RacketIDEで「何か」を実行することです。
guile - C変数をguile変数に直接リンクするTcl_LinkVar in guileのような関数はありますか?
Tcl_LinkVar
C 変数を Tcl 変数に直接リンクできます。C の変数が変更されると、それに応じて Tcl 変数が変更されます。とても便利です。
例:
Guile が同様の機能をサポートしているかどうか疑問に思っています。または、変数が変更されると、毎回スキームで変数に値を渡す必要があります。
parsing - スキーム - LALR パーサー生成 - 文字列からの入力
標準入力の代わりに文字列から文字を読み取るパーサーとレクサーを (巧妙に) 生成しようとしています。
http://code.google.com/p/lalr-scm/source/browse/trunk/calc.scm?r=52のコードに含まれる電卓の例の修正を開始しました。
問題は次の行にあるようです。
新しい入力ポートを定義しようとしました:
変数プログラムは次のように定義されました。
それでも機能しません。標準入力文字を待ちます。
ドキュメントには詳細が欠けているため、これをどのように解決できるかわかりません。
ありがとうございました