2015年6月7日日曜日

開発環境

Land of Lisp (M.D. Conrad Barski (著)、川合 史朗 (翻訳)、オライリージャパン)の3章(Lisp の構文の世界を探検する)、3.2(Lisp シンタックスの構成要素)をSchemeで取り組んでみる。

3.2(Lisp シンタックスの構成要素)

コード(Emacs)

(begin
  (newline)
  (define print (lambda (x) (display x) (newline)))

  (define square (lambda (n) (* n n)))

  (define (square1 n) (* n n))

  (print (square 10))
  (print (square1 10))

  ;; Lisp と違って Scheme のシンボルは大文字小文字の区別をする
  (print (eq? (quote fooo) (quote FoOo)))

  (print (+ 1 1.0))

  (define expt
    (lambda (x n)
      (if (= n 1)
          x
          (* x (expt x (- n 1))))))

  (print (expt 53 53))

  (print (/ 4 6))
  (print (/ 4.0 6))

  (print "Tutti Fruitti")
  (print "He yelled \"Stop that thief!\" from the busy street.")
  )

入出力結果(Terminal(kscheme), REPL(Read, Eval, Print, Loop))

$ kscheme < sample3_2.scm
kscm> 
100
100
#f
0.2e1
24356848165022712132477606520104725518533453128685640844505130879576720609150223301256150373
2/3
0.666666666666666666667e0
Tutti Fruitti
He yelled "Stop that thief!" from the busy street.
#<undefined>
kscm> $

0 コメント:

コメントを投稿