- ベストアンサー
Lisp
Lisp 今リリカルLispをやっているのですが、 詰まってしまって答えがないので困っています。 問題は (s n)を評価すると1+2+・・・+nが返るように関数をsiを定義する(ただしsは次のように定義されている define (s n) (si n 0) ) という問題です。 一応自分なりに考えたのが (define si (lambda (n x) (if (= n 1) (x) (si (- n 1) (+ n x))))) なんですが無限ループのようになるのかこれを実行すると固まって落ちてしまいます。 ご指摘よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
補足
回答ありがとうございます。確かにxじゃないですね。。 直してみて (define si (lambda (n x) (if (= n 1) 1 (si (- n 1) (+ n x))))) これでも間違いになるんですがもし分かればご指摘お願いします。] ちなみに (define si (lambda (n x) (if (= n 0) 0 (si (- n 1) (+ n x))))) でも出来ませんでした。