LINUX.ORG.RU

Чистота. Что-то тут не так.

 , ,


0

2

Любопытная аналогия между ФП функциями, и математическими дробями.

Кагда мы пишем, например две дроби, например, для простоты, 1/2 и 1/2, мы абстрагируемся от оъектов, от которых мы их берем. Например, опять же для простоты, возьмем листы бумаги. Совершенно непонятно, например, идет ли здесь речь о разных листах или об одном? Одинаковые листы это или разные. Отсюда следует, что мы не можем просто так сложить эти дроби, не конкретизировав, сначала, о чем речь.

Для ФП, такой конкретизацией является общий контекст замыканий - в простом случае - глобальная область видимости. Пока все норм. Идем дальше.

Реальные приложения, это как известно, не застывшие раз и на всегда глыбы (даже глыбы иногда ломаются, да), а динамика. Значит, то что было когда то а=foo, станет a=bar. Программе все равно придется взаимодействовать с внешним миром.

Если у нас есть присваивания, мы поступим очень просто - перезапишем значение a в глобале.

Что же тогда становится с иммутабельныи замыканиями? Насколько я понимаю, единственный выход тут, полностью скопировать их и перезаписать все имена a. А что же тогда делать со старыми замыканиями? Выкинуть на помойку? Понятно, что если нам необходим возврат к старому состоянию, да, это нужно. И мы, тащемта, при таком подходе, всегда, вообще, можем вернуться к любому состоянию, это cool, никто не спорит. Но в остальных то случаях, мы получаем громадный перерасход памяти, и больше них-я?



Последнее исправление: anonimous (всего исправлений: 2)
Ответ на: комментарий от dmitry_malikov

Был в Мунтьянской земле воевода, христианин греческой веры, имя его по-валашски Дракула, а по-нашему — дьявол. Так жесток и мудр был, что каково имя, такова была и жизнь его.

Однажды пришли к нему послы от турецкого царя и, войдя, поклонились по своему обычаю, а колпаков своих с голов не сняли. Он же спросил их: «Почему так поступили: пришли к великому государю и такое бесчестие мне нанесли?» Они же отвечали: «Таков обычай, государь, наш и в земле нашей». А он сказал им: «И я хочу закон ваш подтвердить, чтобы крепко его держались». И приказал прибить колпаки к их головам железными гвоздиками, и отпустил их со словами: «Идите и скажите государю вашему: он привык терпеть от вас такое бесчестие, а мы не привыкли, и пусть не посылает свой обычай являть другим государям, которым обычай такой чужд, а у себя его блюдет».

Как хорошо, что придумали заметки.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от BlackHawk

Он наверное по сигнатурам смотрит, как-то, если есть типа, в дальнейшем упоминание, он оставляет, так штоле?

anonimous
() автор топика
Ответ на: комментарий от anonimous

На что не осталось живых ссылок, то больше не потребуется.

Арифметики указателей нет -> восстановить потерянную ссылку потом невозможно -> profit

BlackHawk
()
Ответ на: комментарий от LongLiveUbuntu

Они всегда присутствуют, в том числе и там они были, просто не все их видят. Там заметкой для Дракулы было «турецкая делегация», эта притча совсем не об этом, скорей о том, что в чужой монастырь со своим уставом не ходят.

anonimous
() автор топика

О, очередные откровения. Теперь и до gc очередь дошла. Все в другую половину памяти!

baverman ★★★
()
Ответ на: комментарий от baverman

Ну да, про GC, я как-то не интересовался раньше, зато своим умом дошел, зачем он нужен:). И кстати, возникла аллюзия с CALL/CC, получается, что продолжения, это обратная сторона GC?

anonimous
() автор топика

Отсюда следует, что мы не можем просто так сложить эти дроби

Нет, не следует.

false ★★★★★
()
Ответ на: комментарий от false

Следует. Мы всегда должны иметь в виду, что мы имеем дело с одним и тем же объектом, или с двумя эквивалентными. Иначе мы сложим пол-бегемота с пол-слоном.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Мы всегда должны иметь в виду, что мы имеем дело с одним и тем же объектом, или с двумя эквивалентными

Об этом позаботится type checker.

theNamelessOne ★★★★★
()
Ответ на: комментарий от baverman

Неверно я мыслю, Вы хотите сказать? Ведь call/cc как раз этим и занимается - сохраняет контекст, который уничтожается GC.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Иначе мы сложим пол-бегемота с пол-слоном

Складывая 1/2 и 1/2, нам совершенно плевать, слоны там или бегемоты.

false ★★★★★
()
Ответ на: комментарий от baverman

Неверная аналогия. Холодильник не сможет сохранить, а call/cc сможет. Наркоман/человек сможет уничтожить еду по-любому. Холодильник сохраняет ее не в том смысле, о котором Вы говорите. Но даже если это пофиксить, и перевести в плоскость вор-охранник, то в реале, мы имеем только одно что-то: либо охранник сохранил, либо вор спер. А там, возможно и то и другое одновременно.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Аналогия верная, просто ты, как всегда, ничего не понял, но можешь оставаться при своем мнении. Такие дела.

baverman ★★★
()
Ответ на: комментарий от baverman

Это из разряда: я знаю истину, но вам быдлу не понять, так что думайте по-своему по-быдлятски. Ну-ну. Как правило, служит для маскировки собственного непонимания вопроса. Удобная позиция, х-ле.

anonimous
() автор топика
Ответ на: комментарий от anonimous

У тебя рассыпуха тредов, где выставляешь на всю ивановскую какое ты не быдло, ага. Завязывай с упорином, короч.

baverman ★★★
()
Ответ на: комментарий от anonimous

Это из разряда: я знаю истину, но вам быдлу не понять, так что думайте по-своему по-быдлятски. Ну-ну. Как правило, служит для маскировки собственного непонимания вопроса.

Это лёгкий пинок, чтобы вникнуть в тему чуть глубже - возможно откроешь для себя что-то новое. А до сказавшего такое тебе не должно быть никакого дела, если только ты не тролль и не истеричка. Но если в этих словах ты в первую очередь увидел нечто тебя задевающее/ущемляющее/оскорбляющее, то переход на личности - самый адекватный и ожидаемый ответ.

yyk ★★★★★
()
Ответ на: комментарий от false

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

anonimous
() автор топика
Ответ на: комментарий от yyk

Я не пытаюсь переходить на личности, я пытаюсь разглядеть аргументы, которых нет. И направления (пинка), в какую-то определенную сторону, я тоже не вижу. Отсюда и вывод. А обид никаких нет, что Вы:).

anonimous
() автор топика

Родился на улице Герцена, в гастрономе № 22. Известный экономист, по призванию своему — библиотекарь. В народе — колхозник. В магазине — продавец. В экономике, так сказать, необходим. Это, так сказать, система… эээ… в составе 120 единиц. Фотографируете Мурманский полуостров и получаете te-le-fun-ken. И бухгалтер работает по другой линии — по линии библиотекаря. Потому что не воздух будет, академик будет! Ну вот можно сфотографировать Мурманский полуостров. Можно стать воздушным асом. Можно стать воздушной планетой. И будешь уверен, что эту планету примут по учебнику. Значит, на пользу физики пойдет одна планета. Величина, оторванная в область дипломатии, дает свои колебания на всю дипломатию. А Илья Муромец дает колебания только на семью на свою. Спичка в библиотеке работает. В кинохронику ходят и зажигают в кинохронике большой лист. В библиотеке маленький лист разжигают. Огонь… эээ… будет вырабатываться гораздо легче, чем учебник крепкий. А крепкий учебник будет весомее, чем гастроном на улице Герцена. А на улице Герцена будет расщепленный учебник. Тогда учебник будет проходить через улицу Герцена, через гастроном № 22, и замещаться там по формуле экономического единства. Вот в магазине 22 она может расщепиться, экономика! На экономистов, на диспетчеров, на продавцов, на культуру торговли… Так что, в эту сторону двинется вся экономика. Библиотека двинется в сторону 120 единиц, которые будут… эээ… предмет укладывать на предмет. 120 единиц — предмет физика. Электрическая лампочка горит от 120 кирпичей, потому что структура, так сказать, похожа у нее на кирпич. Илья Муромец работает на стадионе «Динамо». Илья Муромец работает у себя дома. Вот конкретная дипломатия! «Открытая дипломатия» — то же самое. Ну, берем телевизор, вставляем в Мурманский полуостров, накручиваем там… эээ… все время черный хлеб… Так что же, будет Муромец, что ли, вырастать? Илья Муромец, что ли, будет вырастать из этого?

anonymous
()

Тебе уже столько раз тут все говорили, что ты упоротый и невменяемый, что даже до Буратино уже дошло бы. А до тебя все не доходит. Получается, ты более деревянный чем Буратино. С чем тебя и поздравляю.

anonymous
()
Ответ на: комментарий от anonymous

Это говорит лишь об одном - полном отсутствии способностей к абстрактному мышлению. Так же указывает на склонность к задротству, ибо эту сомнительную мысль можно было уместить в 3-4 словах

anonimous
() автор топика

Я вообще не понимаю, почему ТСа до сих пор не забанили. Тут же явная клиника, давно всем уже понятно, что пациент на всю голову неизлечимый. Для его же блага его следовало бы забанить. Ему, по хорошему, место в дурке.

anonymous
()
Ответ на: комментарий от anonimous

из-за твоего «горя от ума», мягко говоря, ты у меня в игноре

комплексуешь? правильно, будь я таким дебилом, я б тоже комплексовал

anonymous
()
Ответ на: комментарий от anonimous

Есть разные системы чисел с определенными на них операциями. Ты берешь 2 числа оттуда и складываешь

vonenij
()
Ответ на: комментарий от anonimous

Слышь, придурочное полено, ты про CPS-преобразование слышало, или как?

Какой тут в пень «контекст», какой к бесам GC?!?

anonymous
()
Ответ на: комментарий от anonymous

ну, всякое амозглое прошмодье типа drBatty/emulek или Napilnik не банят, так почему ТСа должны? он вполне вписывается в стандарты лора

anonymous
()
Ответ на: комментарий от anonimous

А он как определяет, что потребуется в дальнейшем, а что нет?

RTFM, полено: global roots, stop and copy, mark and sweep.

Пока не поймешь все полностью, пока свою реализацию GC не напишешь - не возвращайся, чмо упоротое.

anonymous
()
Ответ на: комментарий от anonymous

Это и печально, что здесь невменяемость в почете. Даже с царем тут как-то слишком уж цацкались, хотя банить надо было при первых же признаках.

anonymous
()
Ответ на: комментарий от anonimous

зато своим умом дошел

Лучшая шутка треда! Полено предположило наличие у себя «ума».

anonymous
()
Ответ на: комментарий от vonenij

Думать не вредно, это раздел про программирование, но если ты считаешь, что тема - дурдом, я тебя поздравляю, хоть я и нуб, но для меня очевидно, что ты не понимаешь ни фп, ни программирования. А то что ты не поленился тут отписаться говоряит еще и о том, что ты как раз поциэнт. Мож не психиатора, но психолога точно. Ты стремишься всему миру показать, хочешь быть услышан и поддержан, а это - твой наркотик - это диагноз.

anonimous
() автор топика
Ответ на: комментарий от anonimous

что ты не понимаешь ни фп, ни программирования.

Это ты по 1 моему посту уже понял. И тебе, наверное, кажется, что никто не может тебя понять, хотя ты говоришь вещи очень значимые и опережающие своё время? И ещё иногда тебе кажется, что тебя преследуют. Есть такое?

vonenij
()
Ответ на: комментарий от vonenij

по 1 моему посту уже понял

Если бы это было не так, твоего поста бы не было, поэтому - да.

anonimous
() автор топика

Иммутабельность это клёво. Сложные иммутабельные структуры данных (списки, словари и т.д.) состоящие из других иммутабельных данных можно умещать в памяти весьма компактно, если часть данных общая.

А то, что действительно не нужно и до чего больше не добраться очистит GC.

PolarFox ★★★★★
()
Ответ на: комментарий от anonimous

Интересно, интересно. То есть, полено считает, что оно что-то там «понимает»? Никаких признаков понимания чего бы то ни было пока-что ты, полено, не продемонстрировало. Ты умудряешься сделать почти невозможное - несешь полную лажу абсолютно во всех темах, которых касаешься, хотя, казалось бы, чисто статистически должен был бы хотя бы иногда, случайно, говорить что-то разумное.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.