Я изучаю ракетку, и я использовал lambda
для определения своих функций.Но я обнаружил, что использовать его не нужно (насколько я знаю).
Я пробовал эти две функции в DrRacket, и обе они возвращают один и тот же результат:
#lang racket
(define factorial
(lambda (number)
(cond ((not (number? number))
(error 'factorial "number is not a number"))
((equal? number 0)
1)
(else
(* number (factorial (- number 1)))))))
(define (factorial1 number)
(cond ((not (number? number))
(error 'factorial1 "number is not a number"))
((equal? number 0)
1)
(else
(* number (factorial1 (- number 1))))))
Второй, factorial1
, не использует лямбду.
Нужно ли использовать lambda
, когда мне нужно объявить функцию?