Дбрый день, товарищи!
Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
Re: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, mini_root_2, Вы писали:
__>Дбрый день, товарищи! __>Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
Оставайтесь на месте. За вами скоро приедут.
...Санитары
... << RSDN@Home 1.2.0 alpha rev. 648>>
Re: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, mini_root_2, Вы писали:
__>Дбрый день, товарищи! __>Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
Здорово! Ещё один выздоравливает.
Re: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, mini_root_2, Вы писали:
__>Дбрый день, товарищи! __>Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
в качестве меры профилактики рекомендуется ежедневно заниматься оптимизацией программ
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, mini_root_2, Вы писали:
__>>Дбрый день, товарищи! __>>Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
BZ>в качестве меры профилактики рекомендуется ежедневно заниматься оптимизацией программ
И чем мне это поможет? Лучше уж писать на vba по два часа в день до полного разжижения мозга.. .
Re: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, mini_root_2, Вы писали:
__>Дбрый день, товарищи! __>Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
Описывать абстракции это одно. А вот прочитывать абстракции это другое.
Здравствуйте, mini_root_2, Вы писали:
__>Дбрый день, товарищи! __>Читаю SICP, где-то четверть уже прочитал. Вчера понял, как спомощью функций можно описывать абстракции (суммирование,перемножение->аккумуляция). Еще чуть-чуть и кажется помойму как проектировать в терминах ФП — это что уже диагноз?
Не, рано пока ставить диагноз... Ты ещё Haskell с его монадами не видел
Я тоже, когда прочитал sicp, думал, что всё теперь в ФП понимаю .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[2]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, frogkiller, Вы писали:
F>Не, рано пока ставить диагноз... Ты ещё Haskell с его монадами не видел
Монады — фигня!
Достаточно вкурить в 4 разных монады — Maybe, State, List, IO — чтобы все остальные монады на одной затяжке проходили.
Maybe — самый простой контейнер (не считая Id, естественно), просто обёртка данных
State — "не просто" обёртка данных, а ещё и изменчивая среда с функциями, определёнными над ней
List — хранилище множества данных, демонстрирующее монадную арифметику во всей красе.
IO — частный случай State, чертовски защищённый от расковыривания. Что в IO попало, то пропало.
Вот когда стрелки будут не фигнёй, вот тогда точно уже диагноз.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: Неужели я становлюсь функциональным извращенцем?
Помогите, пожалуйста, понять как используюстя паттерны ((var val update) ...) и (step ... ), к ним привязывается что-то или они предварительно раскрываются?
Носок исчез в гильбертовом пространстве. Туда ему и дорога.
Re[3]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, last shinji, Вы писали:
...
Макрос — это маленький компилятор, зачастую он довольно сложно преобразует передданое в него AST.
LS>Помогите, пожалуйста, понять как используюстя паттерны ((var val update) ...) и (step ... ), к ним привязывается что-то или они предварительно раскрываются?
BZ>>в качестве меры профилактики рекомендуется ежедневно заниматься оптимизацией программ
__>И чем мне это поможет? Лучше уж писать на vba по два часа в день до полного разжижения мозга.. .
я на днях даже от gcc плевался. представьте, себе, такой вот код:
byte *p;
x = *p/16;
он превращает в
movzl (%ebx), eax
shrb al, 4
movzl al, eax
прям хоть ассемблерные вставки делай а вы тут — хаскел, фп, монады. эх, где мои семнадцать лет, когда у меня в программе даже sp был задействован для хранения своих данных
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, frogkiller, Вы писали:
F>Не, рано пока ставить диагноз... Ты ещё Haskell с его монадами не видел F>Я тоже, когда прочитал sicp, думал, что всё теперь в ФП понимаю .
Добрый день, товарищи!
Уря! Оказывается я еще практически здоров! Вчера поставил себе немерле на моно и понял, что до настоящих извращенцев мне еще далеко (не будем показывать пальцем...). Читал статью в переводе Влада, долго думал что означает сие:
Т.е понятно что это конструкция match/case, которая меняет местами значения двух переменных, но совершенно непонятно зачем там квази цитирование (да и вообще макросы? я видел в статье упоминание случайных элементов массива, но все равно не совсем понятно)?
P.S. Что-то меня от немерле не торкнуло — видимо надо увеличить дозу .
Re[3]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Не боишся, что тебя забанят?
За то что не торкнуло? Ну это поправимо, вот приду сеогдня домой — сяду писать интерпретатор брейнфака на немерле (главное догадаться куда впихнуть макросы, и вообще для чего они там нужны...).
P.S. А что на РСДН действует тайная секта немерлистов-фундаменталистов, которые банят всех кого не торкнуло после хело ворда (обязательно с использованием самопального макроса println) на немерле?
Re[3]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, Кодт, Вы писали:
К>Монады — фигня! К>Достаточно вкурить в 4 разных монады — Maybe, State, List, IO — чтобы все остальные монады на одной затяжке проходили. К>Maybe — самый простой контейнер (не считая Id, естественно), просто обёртка данных К>State — "не просто" обёртка данных, а ещё и изменчивая среда с функциями, определёнными над ней К>List — хранилище множества данных, демонстрирующее монадную арифметику во всей красе. К>IO — частный случай State, чертовски защищённый от расковыривания. Что в IO попало, то пропало.
Мне как прожжёному императивщику даже эти 4 монады кажутся сильно страшными. Единственный лучик света, что я пока встречал — статья в LinuxJournal.
Там, в частности, рассмотрена упомянутая тобой Maybe. Правда реализованная на не совсем императивных языках, в которых имеются замыкания. Я тут попробовал переписать этот пример на С++, получилось так:
Собственно, я тоже посупил не совсем честно, используя шаблоны, но без них, боюсь, не обойтись. Вот так императивщик воспринимает монады, правда страшно? Как будет выглядеть IO я и подумать-то боюсь...
Оффтоп, вопросы (их, возможно, следовало бы запостить с Cpp):
1. Как бы это хозяйство (ручной бинд функторов в IArithmetic) переписать с помощью boost::lambda? Я в бусте совсем слаб, и все мои попытки что-то использовать оттуда при написании вышеприведённого кода выглядели каким-то шаманством, которое так ни к чему и не привело.
2. Почему не проходит неявное преобразование в двух закомментированных строчках? Я сначала подумал, что это глюк моего MSVC7.1, но Comeau Online тоже они не понравились, он ругается даже на явный каст.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[4]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, frogkiller, Вы писали:
F>Здравствуйте, Кодт, Вы писали:
К>>Монады — фигня! К>>Достаточно вкурить в 4 разных монады — Maybe, State, List, IO — чтобы все остальные монады на одной затяжке проходили. К>>Maybe — самый простой контейнер (не считая Id, естественно), просто обёртка данных К>>State — "не просто" обёртка данных, а ещё и изменчивая среда с функциями, определёнными над ней К>>List — хранилище множества данных, демонстрирующее монадную арифметику во всей красе. К>>IO — частный случай State, чертовски защищённый от расковыривания. Что в IO попало, то пропало.
F>Мне как прожжёному императивщику даже эти 4 монады кажутся сильно страшными. Единственный лучик света, что я пока встречал — статья в LinuxJournal.
А можно глупый вопрос? Что такое монады и зачем они вообще нужны?
P.S. Можно смело продолжать читать SICP — до настоящих функциональных извращенцев мне еще далеко ...
Здравствуйте, mini_root_2, Вы писали:
__>P.S. А что на РСДН действует тайная секта немерлистов-фундаменталистов, которые банят всех кого не торкнуло после хело ворда (обязательно с использованием самопального макроса println) на немерле?
И банят не тех, кого не торкнуло, а тех, кто занимается неконструктивной критикой Немерла.
... << RSDN@Home 1.2.0 alpha rev. 749>>
Re[5]: Неужели я становлюсь функциональным извращенцем?
Здравствуйте, Блудов Павел, Вы писали:
БП>Здравствуйте, mini_root_2, Вы писали:
__>>P.S. А что на РСДН действует тайная секта немерлистов-фундаменталистов, которые банят всех кого не торкнуло после хело ворда (обязательно с использованием самопального макроса println) на немерле? БП>И банят не тех, кого не торкнуло, а тех, кто занимается неконструктивной критикой Немерла.
Ой, надо же, это же в корне все меняет. Какие эти баньшики оказывается, адекватные и спокойные люди.
Эрланг — говно тормозное. Ну? Кто бежит меня арестоффать? Эй, Мамут? Ты там как, нормально пережил неконструктивную критику?