| Автор | Сообщение |
Михаил
120 сообщений |
#1600 2010-03-17 05:37 GMT+3 часа(ов) |
|
> Удали ormap, а иначе разговор не имеет смысла.
Cчитай вместе с ormap для случая с одним списоком: ormap не будет вообще задействован. В чем проблема? В итоге, для случая с одним списком код будет абсолютно таким же простым как и #1588. |
|
Михаил
120 сообщений |
#1601 2010-03-17 05:42 GMT+3 часа(ов) |
|
> Мне повторить что ты просил? Я не могу удовлетворять
> твои сию минутные потребности. Я просил обосновать твое высказывание об эффективности. Ты сказал, что реализация свертки сложнее чем для случая с одним списком. По количеству текста да, сложнее. Но по эффективности и там и там для случая с одним списком - одинаково. |
|
misha
465 сообщений |
#1602 2010-03-17 05:44 GMT+3 часа(ов) |
ЦитатаСколько раз надо повторять: схема не с++. |
|
misha
465 сообщений |
#1603 2010-03-17 05:46 GMT+3 часа(ов) |
ЦитатаПростая хвостовая рекурсия всегда будет эффективнее применения любых fold***. Именно это я и хотел сказать. |
|
misha
465 сообщений |
#1604 2010-03-17 05:51 GMT+3 часа(ов) |
ЦитатаКогда набираешь код на Схеме, забудь про С++. Его правила здесь не действуют. |
|
Михаил
120 сообщений |
#1605 2010-03-17 05:52 GMT+3 часа(ов) |
|
> Сколько раз надо повторять: схема не с++.
Мне ты это говоришь в 1-й раз. И непонятно почему мне. > Простая хвостовая рекурсия всегда будет эффективнее применения любых fold***. > Именно это я и хотел сказать. fold разве в цикл не превратится? |
|
misha
465 сообщений |
#1606 2010-03-17 05:58 GMT+3 часа(ов) |
|
>> Сколько раз надо повторять: схема не с++.
>Мне ты это говоришь в 1-й раз. И непонятно почему. Да не тебе. Я постоянно всем твержу: схема не с++. >> Простая хвостовая рекурсия всегда будет эффективнее применения любых fold***. >> Именно это я и хотел сказать. >fold тоже в цикл превратится, не тупи. Не груби. Правило предварительного вычисления всех аргументов функции никто не отменял. А оптимизация схем-кода вообще дело темное. fold*** будет оптимизирована, но подстановка ее кода(inline) скорее всего выполнятся не будет. отредактировал(а) misha: 2010-03-17 06:05 GMT+3 часа(ов) |
|
Михаил
120 сообщений |
#1607 2010-03-17 06:08 GMT+3 часа(ов) |
|
> Не груби.
Ты не на те ответы отвечаешь. > Правило предварительного вычисления всех аргументов функции никто не отменял. fold преобразуется в обычный цикл. Мой пример не хуже по "эффективности" твоего. |
|
Михаил
120 сообщений |
#1608 2010-03-17 06:09 GMT+3 часа(ов) |
|
> А оптимизация схем-кода вообще дело темное.
Так зачем этим прикрываться обвиняя меня в избыточности? |
|
misha
465 сообщений |
#1609 2010-03-17 06:17 GMT+3 часа(ов) |
ЦитатаА ты о чем? Я о твоей (roman->arabic lst), а не fold. Впрочем твоя реализация foldr не работает в roman->arabic. И я, и ты - знаем почему так происходит. |
|
Михаил
120 сообщений |
#1610 2010-03-17 07:14 GMT+3 часа(ов) |
|
Да, я ошибся, надо было проверить.
(define (fold-left f c as . bss) |
|
misha
465 сообщений |
#1617 2010-03-17 13:07 GMT+3 часа(ов) |
|
Как вариант:
(define (fold-right fun start . lst) |
|
misha
465 сообщений |
#1618 2010-03-17 16:42 GMT+3 часа(ов) |
|
Моя самая быстрая версия:
(define (fold-right fun start lst . lsts) |
|





