Skip to content
long_long_float edited this page Jan 27, 2016 · 2 revisions

文法

純Lispに準じている

変数

(setq a "hello")
(print a) ; "hello"

関数一覧

(print val) -> Nil : valをLisp文字列で出力する

(setq name val) -> Nil : valを変数nameに代入する

(list val ...) -> List : 引数をそのままListとして返す

(atom val) -> Nil | T : valがアトムであればTを返す

(+ val ...) -> Integer : 引数の合計を返す

(let ((name val) ...) program ...) -> Expression : _name_をvalで初期化したコンテキストでprogramを評価する

(for name start stop program) -> Nil : startからstopまでprogramを評価することを繰り返す

サンプル

Hello World!

(print "Hello World!")

変数

(setq a 10)
(setq b 20)
(print (+ a b))

let

(let ((a 10) (b 20))
  (print (+ a b)))
(setq a "hoge")
(let ((a 10)) (print a))
(let ((a nil)) (print a))
(print a)

cons

(print (cons 1 2))
(print (cons (cons 1 2) (cons 3 4)))
(print (cons 1 nil))
(print (list 1))
(print (cons 1 (cons 2 (cons 3 nil))))
(print (list 1 2 3))

for

(for i 1 5 (print i))
(for j 1 5 (print j))
(let ((a 10))
  (for i 0 a
    (print i)))

FizzBuzz

(for i 1 100
  (print
    (cond
      ((= (mod i 15) 0) "FizzBuzz")
      ((= (mod i 3) 0)  "Fizz")
      ((= (mod i 5) 0)  "Buzz")
      (t i))))

Clone this wiki locally