
No.2ベストアンサー
- 回答日時:
こんばんは。
cons の名は基本データ型「コンスセル(cons cell)」を構築すること
(construction of cells)に由来します。
(本当は歴史的経緯がいろいろあるのですが、下記のオンラインリファレンスに
詳しく書いてありますので略させていただきます。)
コンスセルとは「(CAR . CDR)」という形で表現される、
2つのポインタが対になったオブジェクトのことです。
cons とは、「(cons object1 object2)」の形で、object1 を CAR(カー)、
object2 を CDR(クダー)とするコンスセルを構築するための関数です。
cons はリストの先頭に要素を1つ追加するためにしばしば用いられます。
この場合、auto-mode-alist という連想リスト(associative list, alist)の
先頭にコンスセルを追加したものを新たな auto-mode-alist として設定しています。
Lisp の性質として「(1 2 3)」のようなリストは「(1 . (2 . (3 . nil)))」と等価です。
だから、コンスセルを構築する cons を使って連想リストの要素を追加できるのです。
>あと、cons 'の 'マークがなぜ必要なのかわかりません。
これは、'でクォートしておかないと、括弧の中身が展開され、
「"\\.c$"」という名前の関数の呼び出しと解釈されてしまうからです。
で、当然ながらそんな変な関数は知らないと叱られます。
*scratch* バッファやミニバッファで「("\\.c$" . c-mode) 」を評価してみてください。
(setq list '((1 . 2)))
(setq list (cons '(3 . 4) list))
またこのようにリストにどんどんコンスセルをつないで遊んでみるのも面白いでしょう。
elisp の仕様に関して最も詳しいのは当然ながら Lewis, LaLiberte, Stallman らの
「Emacs Lisp リファレンスマニュアル」(アスキー出版局)ですが、
私は手引書として yatex(野鳥)モードの作者・広瀬雄二さんの
「やさしい Emacs-Lisp 講座」(カットシステム)もお勧めします。
http://www.ascii.co.jp/books/detail/4-7561/4-756 …
参考URL:http://www.fan.gr.jp/~ring/doc/elisp-manual/elis …
ありがとうございました。
私は与えられた開発環境の中でプログラミングするのは
まあまあできるのですが、いつも環境設定でミスするので、
OSの知識を総ざらいしているところです。
No.3
- 回答日時:
.emacs設定ファイルで使われるemacs-lispについては、
以下のURLが参考になりますでしょうか。
簡単に言うと、
(1)'(アポストロフィ)は、そのあとのリストを評価せずにそのまま扱う。
(2)consは#1の回答にあるように、リストの先頭に要素を入れて、新しいリストを作る。
となります。
参考URL:http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emac …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード 質問お願いします 「「RAM2GB+拡張4GB」などと書いてあるのは、搭載されているメモリ(RAM) 6 2023/08/28 12:31
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- CAD・DTP メインはAutocadからJwwに変換、尚且つ事前修正が少ないもの 1 2022/10/30 13:37
- フリーソフト イーファンビューでwebpファイルが開けません 1 2022/07/12 07:07
- プリンタ・スキャナー 「用紙が違う」メッセージが頻発 4 2022/08/22 08:30
- 音楽配信 Auto-Tuneに頼り歌うことは恥ずかしいことですか?聴力に軽い障害があります。長文です。 私はあ 1 2023/06/21 01:07
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- モニター・ディスプレイ AIO520で外部出力ができなくなりました。 2 2022/07/19 15:07
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで入力した数字の書式が上手...
-
エクセルでセルの統合
-
Excel関数 「日付を入力...
-
pages で「テキストを左右両端...
-
ドロップダウンリストとIF関数
-
エクセルのチェックボックスを...
-
IF関数でのダブルクォーテーシ...
-
エクセルに詳しい方お願いします。
-
emacsの設定
-
セルの大きさと文字フォントを...
-
エクセル行の幅自動調整の方法
-
Numbersでマイナス値を赤色にす...
-
エクセルVBAで、C言語のscanf("...
-
エクセルでのセルをまたぐ文字...
-
エクセルで数字から名前に変...
-
配列の逆行列が求められない(M...
-
エクセルで在庫表を作りたい
-
エクセルで入力すると日付など...
-
EXCELで連続していない数値を30...
-
VBAで「セルに何か入っている場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel関数 「日付を入力...
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
エクセル 条件が成立した場合...
-
エクセル関数で…
-
エクセルで在庫表を作りたい
-
エクセルでのNULLという文字列...
-
エクセルでのセルをまたぐ文字...
-
Excel:セルに入力されている日...
-
エクセルで漢字を数字に変換す...
-
エクセルで縦書きルビの付け方
-
pages で「テキストを左右両端...
-
エクセルにて結合サイズが異な...
-
EXCELで連続していない数値を30...
-
エクセルについて、A1が1ならば...
-
ワードで文字がセルの下にもぐ...
-
関数名は合っているのに#NAME?...
-
ワード2003表計算 表示形式の変更
-
エクセル、 3×5センチのセル...
-
折り返して表示、縮小して表示...
おすすめ情報