問題タブ [the-little-schemer]

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 投票する
3 に答える
579 参照

lambda - リトルスキームャー:multiinsertLR&coの例に固執

いくつかの作業の後で関数を理解することができましたが、次のコード(p。143)multirember&coからはあまり意味がありません。multiinsertLR&co

collectorこの本は、関数を評価するときに最初にどちらを渡す必要があるかを説明していないようです。そこで、それぞれ138ページと140ページで説明されているa-friendコレクターとコレクターを使用しました。last-friendいずれかのコレクターで関数を評価すると、次のエラーが発生します(petit chezスキームでトレース関数を使用)。

コードを数回調べましたが、エラーが見つかりませんでした。誰かが何か洞察を持っているなら、それを共有してください。誰かが私に(比較的言えば)継続の穏やかな説明をいくつかの良い例とともに指摘することができれば、それも大いにありがたいです。

0 投票する
4 に答える
190 参照

lisp - cond ステートメントから余分な else を削除しますか?

私は現在、「The Little Schemer」の第 4 版を読んでいます。初期の演習の 1 つinsertRは、リスト内の特定の値の右側に値を挿入する関数を作成することです。この本は最終的に次の定義に到達します。

私自身の定義は次のようになりました。

それらは同等ですか?

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

recursion - この length≤1 を複数回行う方法は?

The Little Schemerlength≤1という本の166 ページを 1 日かけて読みました。次のコードがあります。

lは次(apples)eternityとおりです。

166ページ(第4版)には、次のように記載されています。

mk-length一度応募するともらえるlength≤1

その後

これを複数回行うことはできますか?

しかし、取得するためにこれを行う方法がわかりませんかlength≤2

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

lisp - 「The Little Schemer」の短所の結果

178 ページに、次の質問があります。

どこ

本に書いてある答えは

しかし、私は答えがあるべきだと思います

なぜ私は間違っているのですか?

0 投票する
4 に答える
6659 参照

scheme - リトルスキーマーとラケット

私はLittleSchemerを読み始めており、PLTSchemeの代わりにRacketがあります。ラケットが本の演習を行うのに適しているかどうか、または別の真のSchemeコンパイラを入手する必要があるかどうかを知りたいです。言うのを忘れる前に、私のOSはWindowsx64です。

本、言語、パラダイムは十分に複雑なので、コンパイラーとの闘いは避けたいと思います。

よろしくお願いします。

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

scheme - cons の 2 番目の引数がリストでなければならない理由

私は小さな計画者という本を読んでいます。

それを読む前に、私はSICPの最初の 3 つの章を読み終えました。

私の質問は、cons の 2 番目の引数が list でなければならない理由です。

ただし、(cons a b)すべての値 a および b および

(car (cons a b))= a

(cdr (cons a b))= b

0 投票する
4 に答える
996 参照

list - Haskell でリストがフラットかどうかを確認する

The Little Schemerには、リストがフラットかどうかをチェックする関数があります。

Haskell で同じ再帰関数を書き込もうとしていますが、成功しません。

パラメータがフォームにないことを確認するにはどうすればよい[[a]]ですか? つまり、[1,2,3]は有効な入力ですが、[[1,3], [2,4]]とはそうで[[[1,2,3]]]はありません。

リストを受け入れる再帰関数でこれをさらに使用して、フラットリストのみを確実に処理したいと考えています。

編集:is_lat :: [a] -> Bool型シグネチャのために人々が混乱しているようです。実行時に型をチェックするべきではないことに同意します。しかし、コンパイル時に型をチェックすることは可能ですか? 関数をフラットリストに対してのみ機能させるにはどうすればよいですか? それとも考え方を根本から変えるべきですか?

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

lisp - 「atom」のバインドされていないエラーが発生するのはなぜですか?

「The Little Lisper」を読み進めようとしているのですが、最初の章ですでに障害に遭遇しています。私は Emacs に比較的慣れていません (Lisp と clojure の学習への関心が高まりました)。Mit-scheme アプリをダウンロードし、Edwin で演習を行っています。

私はしようとしています:

ここで、a はアトムで、l はすでに定義されているリストです。次のエラーが表示されます。

なんで?「ヌル?」の使用に問題はありません。関数。「アトム?」と思いました。返された値がアトムかどうかをチェックする内部関数です。

どんな説明でも大歓迎です。私はまだ emacs で schema を実行するように設定していません。すべての Lisp 方言の小さな違いが私の忍耐力を試しています。

0 投票する
4 に答える
3234 参照

functional-programming - The Little Schemer - どこから始めますか?

The Little Schemer を開いたところ、何かが足りないような気がします。

最初の質問は「これが原子であるというのは本当ですか?」という質問ですが、原子とは何かという定義が見当たりません。質問への答えから原子が何であるかを導き出すことができると思いますが、その後、l の car は何か、l の cdr は何かと尋ねられますが、何を尋ねられているのかわかりません。

この本の目的は、答えを読んで質問の意味を理解することですか、それとも、この本に取り組む前に必要な基本的な知識はありますか? 後者の場合、誰かがその基本的な知識をどこで習得できるか教えてもらえますか?