あけましておめでとうございます。本年もよろしくお願いします。
さて、時代はLispということで、ちょっとだけ理解したことを書いて行きます。嘘です.Neuromagの分析ソフト,GraphなんかはLispで書かれているので,ちゃんと理解した方が良いかなという話です.今日は基本的なところ.
- ( ではじまって、 ) で終わる。
- 基本的には( )の中に入っているものは、半角スペースで区切られたリストである。
- (1 2 3 4)というのはそのままのリスト。
- (1 2 (3 4) )という形で二重のリストになったりする。
- (+ 1 2 3)のように、特別な何か(関数)が左端にやってくると、単なるリストではなく、結果が返ってくる。でも、リストも結果らしいよ。この場合は、6(ようするに、1+2+3)。
( )内の左端の要素と、それ以外には重大な違いがある(ようだ)。- ( )内の左端の要素をcar (カー)と呼ぶらしい。wikipedia(LISP)によれば、Contents of Address part of Registerの略称のようだ。レジスタ(記憶素子)のアドレスパートの要素。何を言っているのかわからない。Copy Address Register説もある?いずれにせよ、「左端の要素をcarと呼び、car関数はリストの左端を呼び出す」ということが分かればそれだけで良さそうな雰囲気を感じるけどどうかな
- cdr(クダー)というのが,car以外のもの.
- (cdr (1 2 3 4))は,(2 3 4)を返す.
- carとcdrを組み合わせると,リストのどの要素にもアクセスできる(らしい).(car (cdr (cdr (1 2 3 4)))で,3とか.
- なんかconsというものもあって,どうも箱が出てくる良く分からない説明が出てくる( GNU Emacs Lisp リファレンスマニュアル; Lispデータの型参照)が,動作としては基本的にはlistの先頭に新たな要素を加える関数のようだ{(cons 0 (1 2 3 4))は,(0 1 2 3 4)を返す}.
これだけを武器に,Graphの中身を解読してみようと思います.[0回]
PR