×[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
prev>>Lispとは| HOME |next>>Lispの関数定義
最初に
・開発環境はwindows7(64bit)。
・特に記述が無い場合はCLISP(ver2.49)を使う。
・Lispの始まりと終わりは****で区切る。
・関数の定義以外の部分は";"を先頭に記述する。
・コードはGitHubからダウンロードできる。
インタプリタを起動する
コマンドプロンプトを立ち上げたら"clisp"と入力する。
インタプリタを終了する
終了するときは"
(exit)"もしくは"
(bye)"と入力する。
簡単な計算をしてみよう
Lispでなにか処理をさせたい場合は関数と呼ばれるものを使います。例えばある数字とある数字を足したいときは関数である"+"を使います。また関数が使うデータのことを引数と呼びます。先の例での引数はある数字のことです。
記述の仕方は"
(関数名 引数1 引数2 ...)"と必ず括弧の中に記述します。
先の例で記述すると"
(+ ある数字 ある数字)"となります。
四則演算の関数
加算:"+"
減算:"-"
乗算:"*"
除算:"/"
****
; [1]> (+ 1 2)
; 3
; [2]> (- 1 2)
; -1
; [3]> (* 2 3)
; 6
; [4]> (/ 7 2)
; 7/2
****
複雑な計算をしてみよう
上では2つの引数を使いましたが、それ以上の引数を使うことができますし、計算結果を1つの引数として使うこともできます。
****
; [1]> (+ 1 2 3 4 5)
; 15
; [2]> (- 30 2 3 4 5)
; 16
; [3]> (/ 36 6 3)
; 2
; [4]> (+ (- 8 (/ 6 3)) (* 7 2))
; 20
****
引数がたくさんある場合、左から順番に処理をします。"(/ 36 6 3)"を見てください。左側から処理をするのであれば36を6で割り、その答えを3で割ります。その結果答えは2となります。6を3で割りその答えを使って36を割ると、結果は18となり答えが変わってしまいます。
同様に"(+ (- 8 (/ 6 3)) (* 7 2))"も考えてみましょう。一番外側の括弧は関数"+"を使っています。その引数は"(- 8 (/ 6 3))"と"(* 7 2)"です。この2つの引数も同様に関数を使って計算をしていますので"(- 8 (/ 6 3))"に注目して考えてみましょう。一番外側の括弧は関数"-"を使っています。その引数は"8"と"(/ 6 3)"です。"8"は計算をする必要はありませんが"(/ 6 3)"はさらに計算が出来ます。"(/ 6 3)"の結果は2です。つまり"(- 8 2)"となり結果は6となります。"(* 7 2)"に注目すると結果は14となので"(+ (- 8 (/ 6 3)) (* 7 2))"と"(+ 6 14)"は同じ式として表すことができ、計算結果は20となります。
整数型と実数型
計算する時に整数の部分のみを取り出した整数型と実数の近似を表現できる実数型は使い分けることができます。計算で1つでも実数型が含まれていれば、その計算は実数型として計算されます。逆に、1つでも実数型が含まれていなければその計算は整数型として計算されます。分数の計算では実数型を使っていれば小数点まで表示されますが、整数型のみだと分数表示されます。
****
; [1]> (+ 2 3)
; 5
; [2]> (+ 2.0 3.0)
; 5.0
; [3]> (+ 2 3.0)
; 5.0
; [4]> (+ 2.0 3)
; 5.0
; [5]> (+ (* 3.0 4) 5)
; 17.0
; [6]> (/ 2 4)
; 1/2
; [7]> (/ 2 4.0)
; 0.5
; [8]> (/ 13 7.0)
; 1.8571428
****
演習
次の式を評価せよ。
1. (/ 1 (/ 15 3))
2. (/ 1 (/ 15.0 3))
演習解答
****
; [1]> (/ 1 (/ 15 3))
; 1/5
; [2]> (/ 1 (/ 15.0 3))
; 0.2
****
[0回]
PR
prev>>Lispとは| HOME |next>>Lispの関数定義