Как переписать на Nemerle задачку из SICP
От: Andy Panda США  
Дата: 13.10.07 11:34
Оценка:
Читаю 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>>
Re: Как переписать на Nemerle задачку из SICP
От: Vermicious Knid  
Дата: 13.10.07 11:48
Оценка: 6 (1)
Здравствуйте, 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))
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.