Σ

;;
;; 1 から引数までの和を返す
;; totalsum.scm
;;

;; 再帰
(define (totalSum val)
  (if (= val 0)
	0
	(+ val (totalSum (- val 1)))))


;; Guile では (car (command-line) ) は自分自身
;; (cdr (command-line) ) に引数が入る
(define *argv* (cdr (command-line)))

;; 引数の取得
(define num (string->number (car *argv*)))

;; 結果表示
(display '"Sigma[")
(display num)
(display '"] is ")
(display (totalSum num))
(display #?newline)

よく考えたら totalSum っていう名前は明らかにおかしいけどまあいいや。そんなことより Scheme おもろい。
今はたったこれだけのコードを書くのも精一杯だけど、なんかこう視点が違う感じが良い。
あと括弧がたくさんあって楽しい。


次は Haskell で書いてみるべ。