3

スキーム初心者です。私は以前、letrec を使用し、ラムダを使用してバインドする際に、このようなプログラムを実行していました。

(define (drop l n)
  (letrec ((iter (lambda(ls x)
  (cond ((null? ls) ls)
        ((> x 1) (cons (car ls) (iter (cdr ls) (- x 1))))
        (else (iter (cdr ls) n)))))) (iter l n)))

(define factorial
  (lambda (n)
    (letrec ((iter
              (lambda (product counter)
                (if (> counter n)
                    product
                    (iter (* counter product)
                          (+ counter 1))))))
      (iter 1 1)))

しかし最近、私たちの大学の評価機関が構造「ラムダ」の使用を許可していないことがわかりました。ラムダを使用せずに同様の問題を実行できる方法はありますか? 他の代替案を提案してください。

4

1 に答える 1