問題タブ [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.
scheme - 検出 #スキームリストで
値のリストを返す関数があります。これらの値には、それ自体が空のリストである場合もあれば、そうでない場合もあります。ただし、すべてのリストの最後には#<unspecified>
値があります。関数が何も返さない場合にこの値が返されることを理解しています。
この値を、他のヌル リストと一緒に削除したいと考えています。
私のリストは次のようなものです:
(() () MD- MC+. #<unspecified>)
このリストにフィルター機能を適用するつもりです。私が適用する基準は ですnull?
。
ただし、これを#<unspecified>
値に適用すると、false になります。#<unspecified>
リストから値を削除するにはどうすればよいですか?
フィルター関数を適用した後のこのリストの出力は次のようになります。
(MD- MC+)
どうすればいいですか?
scheme - スキームで2つではなく、1つのパラメーターのみをマップに渡す
(extract-disjunct word nodes)
私は 2 つのパラメーターを取るスキームに関数を持っています:word
とnodes
.
「これはテスト文です」という文があります。この文の各単語に対して、上記の関数を適用したいと思います。
これは、簡単なマップ操作で実行できます。
ただし、キャッチは次のとおりです。2番目のパラメーターnodes
自体はネストされたリストであり、パラメーターは特定の文に対して同じままです。つまり、マップを適用する単語のリストに対して同じままです。変わりません。
次のようにマップを適用したい:
(map extract-disjunct word nodes)
ただし、エラーが発生します。解決策はありますか?マップ内の 1 つのパラメーターを一定に保つことはできますか?
scheme - スキームで特定の条件が満たされた場合にのみ値を割り当てる
null 値を含む可能性のあるリストがあります。ただし、これらの null 値は無視するつもりです。私のリストの例は次のとおりです。
(() () MC+ () MD- () () ME+)
私の手順では、これらの要素を繰り返し処理し、let を使用して、このリスト内の 1 つの要素にバインドするローカル バインド変数を作成しています。ただし、値が null でない場合にのみ、変数をバインドできるはずです。現在、私は次のようにしています:
ただし、その要素が null でない場合にのみ、disjunct に値を割り当てる必要があります。これは、disjunct に割り当てられる値が次のようになることを意味します。MC+
すべての値を反復処理し、次の非 null 値を選択して に割り当てる必要がありdisjunct
ます。
もう1つ、私は今後さらに操作を行っていdisjunct
ます。そして再帰的に、リストの残りの行を下に渡します。したがって、次にこのプロシージャを再帰的に呼び出すときdisjunct
は、値がMD-
. それを使用(cdr disjunct-list)
すると、次のリストを取得できるはずです。(() MD- () () ME+)
これはどのように行うことができますか?
scheme - Scheme の文に出現する順序に従って単語のリストを並べる
たとえば、私には文がありますThe game is played on a level playing field
。
今、私は言葉のリストを持っています(played is the)
。これらは私に与えられたランダムな言葉です。
ここで、文中に出現する順序に従って順序付けする必要があります。これをSchemeで行うにはどうすればよいですか?ここで私を助けるためにSRFIライブラリに何か関数はありますか? これを再帰的に行う方法がわかりません。
scheme - スキームのリストの任意の位置に挿入する
たとえば、次のようなリストがあります。(B D F)
リストの任意の位置に要素を挿入したい。たとえば、要素が A の場合は B の前に挿入し、要素 C の場合は B の後、D の前に挿入します。
Schemeのリストの任意の位置に要素を挿入する方法はありますか?
scheme - スキームでyieldとsendを実装する
PythonからSchemeに移植しようとしてyield
います。yield from
これが私が行った実装です:
この実装の問題は、それを呼び出す方法が Python の のように見えないことですyield
。
とりわけ、コルーチンを再起動する必要があるたびに、コルーチンを有効にするために新しい変数が必要 です。基本的に、構文が冗長すぎると思います。よりクリーンな構文を持つ別のものはありますか?let
return
exit
コルーチンyield
に 値を付けることが可能である必要があります。send
コルーチンの使用方法の例を次に示します。
上記では、1
は無視され、その後100
、1000
はsend
ジェネレーターに送信されます。@sylwester コードに基づいて実装を行いましたが、マクロに問題があります。
installation - gnu/libtool (libltdl) がインストールされているが、configure スクリプトで見つからない
システムにローカルにGuileをインストールしようとしています。gnu/libtool が必要です。すべての依存関係をインストールしているときに、make check
gnu/libtool のインストール中に " " コマンドでエラーが表示されました。しかし、コマンドを省略して " make
" に続けて " make install
" を実行すると、正常にインストールできました。残りの依存関係を問題なくインストールできました。ただし、次のコマンドを実行すると、以下のエラーが発生します。
指示:
エラー:
これ$PREFIX
が定義されており、libltdl
ライブラリをlibtool
フォルダーにインストールしました。フォルダのinclude
およびlib
サブ ディレクトリをlibtool
調べると、libltdl
フォルダと .so ファイルが見つかります。
そのため、configure スクリプトがローカルにインストールされたバージョンの を見つけられない理由がわかりませんlibtool
。誰かがコマンドの問題とこのエラーを修正する方法を指摘できれば、非常に感謝しています。