Определение факториальной процедуры в Charme

Мне нужна помощь в определении факториальной процедуры в Charme. Процедуру необходимо выразить в виде строки в Python, определив переменную с именем charmeFactorialDefinition. Когда вы оцениваете evalInGlobal(charmeFactorialDefinition), он должен определить процедуру Charme, называемую факториалом.

Вывод должен выглядеть так:

инициализировать глобальную среду ()

evalInGlobal (charmeFactorialDefinition)

evalInGlobal("(факториал 5)")

120

Хорошо, пока я знаю, что Charme не поддерживает ярлык определения для быстрого перечисления функций и их аргументов, поэтому мне приходится писать ответ от руки с помощью лямбда, например:

charmeDoubleDefinition = "(определить double (лямбда (x) (+ x x)))"

Но кроме этого, я понятия не имею, как начать


person Scheme 2020    schedule 30.03.2011    source источник
comment
Что такое Шарм? Это похоже на библиотеку Python для какого-то диалекта LISP/Scheme или что-то в этом роде.   -  person Daniel DiPaolo    schedule 31.03.2011


Ответы (1)


Вы должны предоставить ссылку на очарование для людей, которые не не знаю, о чем вы говорите. Хотя это может решить вашу проблему.

charmeFactorialDefinition = "(define factorial (lambda (x) (if (> x 1) (* x factorial(x)) (1) ) ))"
person highBandWidth    schedule 30.03.2011