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

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

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

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

Gauche

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

LISP

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

Q&A

解決済

2回答

1110閲覧

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

tf2014

総合スコア75

Scheme

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

Gauche

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

LISP

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

0グッド

0クリップ

投稿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))))))

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

確認できる限りでは、これはリストですか? (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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tf2014

2022/11/10 22:26

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

0

正しい。

投稿2022/11/10 20:56

atcoderyellow

総合スコア481

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tf2014

2022/11/10 22:27

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問