正直苦戦した

最初はリストをhogehogeして最終的にリスト内をクロールして足していけばいいじゃん!
とか思ったけど入れ子リストがうまく扱えませんでした。。。。

;;;1.12
(define (fact n)
  (if (= n 0)
      1
      (* n (fact (- n 1)))
      )
  )

(define (combination n k)
  (/ (fact n) (*
               (fact (- n k))
               (fact k)
               ))
  )

(define (pascal n count);nは段数0から
  (if (> count n)
      (newline)
      (begin
        (display (combination n count))
        (if (< count n)
            (display  "兄貴")
            ""
            )
        (pascal n (+ count 1))
        )
      )
  )

(pascal 1 0)
(pascal 2 0)
(pascal 3 0)
(pascal 4 0)
(pascal 5 0)
(pascal 6 0)
(pascal 7 0)
(pascal 8 0)
(pascal 9 0)

1兄貴1
1兄貴2兄貴1
1兄貴3兄貴3兄貴1
1兄貴4兄貴6兄貴4兄貴1
1兄貴5兄貴10兄貴10兄貴5兄貴1
1兄貴6兄貴15兄貴20兄貴15兄貴6兄貴1
1兄貴7兄貴21兄貴35兄貴35兄貴21兄貴7兄貴1
1兄貴8兄貴28兄貴56兄貴70兄貴56兄貴28兄貴8兄貴1
1兄貴9兄貴36兄貴84兄貴126兄貴126兄貴84兄貴36兄貴9兄貴1

飯食ってたら入れ子リストを足し算するのを思いついた。
多分これを使えば。。。
でもめんどいので次ぎ。

(define list1 '(1 2 3 4 5))
(define list2 '(1 ((2 3) 4) 5))
list1
list2
(define (ls_sum2 list)
(cond
     ((null? list)     0)
     ((not (list? list)) list)     
     (else
        (+ (ls_sum2 (car list)) (ls_sum2 (cdr list))))
      ))

(ls_sum2 list1 )
(ls_sum2 list2 )