Читаю SICP, параллельно пробуя выполнить некоторые задачки на Nemerle. Результат зачастую выглядит очень приятно, особенно если использовать #pragma indent
Столкнулся с проблемой, никак не могу решить.
Задание примерно такое:
Написать функцию double, которая принимает в качестве параметра функцию func и возвращает функцию, которая дважды применяет func к своему аргументу
На схеме решение очевидно
(define (double func)
(lambda (x)
(func (func x))))
(define (inc x)
(+ 1 x))
И определить результат вычисления (((double (double double)) inc)5)
Никак не могу сообразить как переписать функцию doubler и задачу на Nemerle.
... << RSDN@Home 1.2.0 alpha rev. 648>>
Здравствуйте, Andy Panda, Вы писали:
AP>Написать функцию double, которая принимает в качестве параметра функцию func и возвращает функцию, которая дважды применяет func к своему аргументу
AP>Никак не могу сообразить как переписать функцию doubler и задачу на Nemerle.
module M
{
dbl[X](func : X->X) : X->X
{
x => func(func(x))
}
Main() : void
{
System.Console.WriteLine(dbl(dbl(dbl))(_+1)(5))
}
}