scheme

    3

    2答えて

    私は現在、試験の準備をしており、foldlでfoldlを書くことはテストのための素敵な質問になると思っていました。 とにかく、私は(foldlのFをベースLST)リターン(XN F(LSTされた状態でFX(N-1)。。。(F×1ベース) (X1。。。XN)は 知りますそれでは、私が現在持っていることはこれです:。 (define (foldl/w/foldr f base lst) (fold

    1

    3答えて

    私はスキームを学習しています。たとえば、負の数のリストを削除する方法を知りたいので、ポジティブを扱うことができます。これまではネガを削除する代わりに#がありました。ここで が私のコードです: (define test (lambda (list) (map (lambda (x) (if (> x 0) x))list)))

    2

    1答えて

    takeをflattenの出力に呼び出そうとしています。問題は、takeはaのリストを必要としますが、flattenはAnyのリストを返します。それらの間で変換する方法はありますか?あるいは私が取るべき別のアプローチ?私はRacket Docsで例を見つけることができませんでした。 (: extend (All (a) (-> (Listof a) Integer (Listof a))))

    1

    1答えて

    私はlst1とlst2という2つのリストを持っています。彼らがいくつかの要素を共有しているかどうかをチェックする関数を定義したいと思います。たとえば、次のように (share-some-elements? '(a b) '(a c))⇒真 (share-some-elements? '(a b) '(d e f))⇒偽 (share-some-elements? '(a b) '(a b d e)

    3

    1答えて

    Schemeマクロでは、「R6RS構文レコードAPIを使用して」レコードタイプfoo(デフォルトではmake-fooというコンストラクタを定義する)を定義する方法など、「派生」識別子を作成するのが一般的です。私は自分のマクロで似たようなことをしたいと思っていましたが、標準ライブラリの中には何のきれいな方法も見つけられませんでした。 (define (identifier-add-prefix id

    3

    1答えて

    怠惰な関数型言語では、リンクリストはジェネレータ風のセマンティクスを持ち、最適化コンパイラの下では、実際にはストレージに使用されていないときにオーバーヘッドを完全に削除できます。 しかし、熱心な機能言語では、それらの使用はそれほど重くはないように見えますが、最適化するのは難しいようです。 Schemeのような言語では、プライマリシーケンス表現としてフラットな配列よりも優れたパフォーマンス理由があり

    1

    1答えて

    Schemeでオブジェクトと式を取り込む関数を作成するという質問をしています。たとえば、(foo 'x '(x 10 x x 4))と指定されたオブジェクトに続くすべてのオブジェクトを返す必要があります。上記の関数呼び出しは(10 x 4)を返します。ただし、式にはリストを含めることもできます。たとえば、(foo 'y '(y (3 y 5 y y 8 9) (10 y 12 13 y 15 y)

    -2

    1答えて

    Scheme言語でコードを作成しようとしています。リストを入力して最初の要素が1回繰り返され、2番目の要素が2回繰り返されるリストの文字列表現を返したい時間および第三の要素は 入力のような三回繰り返す=>(CDG) 出力私はすべての要素を複製してコードを書い=>(cddggg) あります。ループを使用して、すべての要素を最初から最後まで1からn回繰り返す必要があります(nはリストのサイズです)。し

    -1

    2答えて

    MITスキーム:私はフィボナッチ数列(SICPのセクション1.2.2)のn番目の項を計算する関数を書いていたが、私はエラーになっています:未指定の戻り値を (define (fib n) ( define (fib-iter a b count) ( if (= count n) a (fib-iter b (+ a b) (+ count 1))) (

    0

    1答えて

    私はschemeに新しく、Schemeの行列に問題があります。私は1つの大きな正方形行列と1つの小さな正方行列を取る関数を作成する必要があります(条件付き:小さい方の長さは大きなものの除数である必要があります)、小さな行列で大きな行列を操作して新しい行列を作成します。私は正常に大規模な行列を私が望む大きさに分割し、結果を得るために正常に操作しています。ここで は、私はそれをやった方法です: (de