今日も前進Lispの勉強

関数宣言の使い方を確認。
関数定義は defun を使う。これは「define function」の略である。
定義例

(defun testfunc(number)
  (* 10 number))

この関数は、引数で渡した数値に10を掛けて返す。
この関数を定義後、 C-x C-e で評価してエラーがなければ、関数が登録されるので、評価後は関数を利用することができる。
関数を使うときは、以下のとおり。

(testfunc 5)

上記関数を実行した結果は、

50

となる。
ここまでは基本中の基本でまだ簡単。


さらに、let の勉強。
letはローカル変数宣言・定義に利用。
2つの異なる関数内で buf という変数を利用した場合、それぞれの関数内で、それぞれ buf を呼び出したとしたら、お互いそれぞれのローカル変数であることを期待する。
しかし、let を使って変数を宣言しないと、これらの識別はされない模様。
Lispでは基本宣言がグローバルなんかな?時間があるときに検証してみよう。今回は基本的な使用方法のみにとどめる。

以下使用例

(let *1
(message "%s_%s" name1 name2))

評価結果は、

cat_kei

となる。以上。
今日はここまで。

*1:name1 'kei)    (name2 'cat