質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Scheme

Schemeは、Lispから派生したプログラミング言語の一つであり、仕様または実装を指す場合もあります。言語自体の仕様はシンプルで、関数型言語として理解しやすいことから記号処理などで主に用いられている言語です。

Gauche

Gaucheは、Lispの一種であるSchemeのスクリプト処理系で、オープンソースで開発されています。Schemeの処理系でも実用的で軽快。正規表現やCommonLispのようなオブジェクトシステムなどライブラリが豊富で、手軽に扱うことができます。

LISP

LISPはプログラミング言語の一種であり、関数型言語に分類されています。 特徴として、括弧を多様する独特の構文を持ちます。

解決済

『Scheme手習い』の問題: (atom)  はアトムではないのではないでしょうか?

tf2014
tf2014

総合スコア71

Scheme

Schemeは、Lispから派生したプログラミング言語の一つであり、仕様または実装を指す場合もあります。言語自体の仕様はシンプルで、関数型言語として理解しやすいことから記号処理などで主に用いられている言語です。

Gauche

Gaucheは、Lispの一種であるSchemeのスクリプト処理系で、オープンソースで開発されています。Schemeの処理系でも実用的で軽快。正規表現やCommonLispのようなオブジェクトシステムなどライブラリが豊富で、手軽に扱うことができます。

LISP

LISPはプログラミング言語の一種であり、関数型言語に分類されています。 特徴として、括弧を多様する独特の構文を持ちます。

2回答

0グッド

0クリップ

214閲覧

投稿2022/11/10 20:23

編集2022/11/10 21:01

Daniel P. Friedman の 『Scheme手習い』(原著『Little Schemer』)の一章目の最初のページから躓きました。

3ページの問題に

これはアトムですか。
(atom)

とあります。 右側の答えによると、

はい。
(atom)はアトムをかっこでくくったものですから。

と、アトムだということです。

はじめに(前書き)、に記載されているコード(参考1)と Common Lisp にある関数atomを使って以下を試してみると、

(atom? '(atom)) ;または (atom '(atom))  ;common lisp の関数

Nilが表示されます。Gaucheで同様のことを試してみても #fが表示されます。 

恐らく私のコードの何かが間違っているのでしょうが、↑は正しく使われていますか? 

同署の一番最初の問題「これはアトムですか。 atom」で、(atom? atom)と書いてエラーが出て来た後、注意書きに「(quote atom)または'atom」と書いてあるのに気付きクウォート付きで試しています。

もしかすると、この本の読み方、または練習の仕方がわかっていないという可能性が大きいので、ご指摘お願いします。

参考1

LISP

1(define atom? (x) 2 (not (listp x)))

Scheme

1(define atom? 2 (lambda (x) 3 (and (not (pair? x)) (not (null? x))))))

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

ベストアンサー

確認できる限りでは、これはリストですか? (atom) と記載されていました。

Amazonの試し読みでも確認できるようです。
https://www.amazon.co.jp/Scheme%E6%89%8B%E7%BF%92%E3%81%84/dp/4274068269?asin=4274068269&revisionId=&format=4&depth=1

原著でも Is it true that this is a list? (atom)とあります。

投稿2022/11/10 22:03

g000001

総合スコア65

hoshi-takanori👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

tf2014

2022/11/10 22:26

恥ずかしながら、私の読み違いでした。 以下で確認したら、書籍どおり、'T' でした。 ``` CL-USER> (listp '(atom)) T ```

1

正しい。

投稿2022/11/10 20:56

atcoderyellow

総合スコア481

tf2014😄を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/11/11 15:51

こちらの回答が複数のユーザーから「説明が不足している回答」という指摘を受けました。

回答へのコメント

tf2014

2022/11/10 22:27

ありがとうございます。 問題は私の読み間違いでした。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Scheme

Schemeは、Lispから派生したプログラミング言語の一つであり、仕様または実装を指す場合もあります。言語自体の仕様はシンプルで、関数型言語として理解しやすいことから記号処理などで主に用いられている言語です。

Gauche

Gaucheは、Lispの一種であるSchemeのスクリプト処理系で、オープンソースで開発されています。Schemeの処理系でも実用的で軽快。正規表現やCommonLispのようなオブジェクトシステムなどライブラリが豊富で、手軽に扱うことができます。

LISP

LISPはプログラミング言語の一種であり、関数型言語に分類されています。 特徴として、括弧を多様する独特の構文を持ちます。