Здравствуйте, D. Mon, Вы писали:
DM>Нет там противоположности. Он говорит, что не стал бы использовать длинные списки для операций, "которые медленнее чем на массивах". О том же и я говорю.
Ты говорил об ограничениях сверху по размерам. А там этого нет.
Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, VoidEx, Вы писали:
VE>>Ты говорил об ограничениях сверху по размерам. А там этого нет.
DM>Где нет? В фразе Булата про 10к элементов?
а что вообще хочется? чтобы язык сам менял этот код
map _ [] = []
map f (x:xs) = f x : map f xs
на этот?
let map f = function
| [] -> []
| h :: t ->
let rec loop dst = function
| [] -> ()
| h :: t ->
let r = { hd = f h; tl = [] } in
dst.tl <- inj r;
loop r t
in
let r = { hd = f h; tl = [] } in
loop r t;
inj r
Вообще, это пост о том, что иммутабельность в частности и ФП вообще дорого обходятся без нормальной поддержки ленивости. И, если уж обходятся, то как именно.
Решение проблемы в Хаскеле меня, в данном случае, полностью устраивает.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Здравствуйте, Klapaucius, Вы писали:
K>Вообще, это пост о том, что иммутабельность в частности и ФП вообще дорого обходятся без нормальной поддержки ленивости. И, если уж обходятся, то как именно. K>Решение проблемы в Хаскеле меня, в данном случае, полностью устраивает.
По моему цена больше зависит от умения компилятора оптимизировать, а не от ленивости. В Xаскель просто тупо вложено больше человеко-часов.
Здравствуйте, FR, Вы писали:
FR>По моему цена больше зависит от умения компилятора оптимизировать, а не от ленивости.
И от этого тоже. Но в данном случае компилятор победит рантайм с хорошей поддержкой ленивости, в общем случае, только при дефорестации вообще всего, анализе всей программы, суперкомпиляции. Что само по себе достаточно проблематично. Понятно, что избавляться от списков вовсе — лучшее решение, но на практке избавиться от всех списков не получается, и в таких случаях без эффективной поддержки ленивости дела принимают очень неприятный оборот.
FR>В Xаскель просто тупо вложено больше человеко-часов.
Верно. Эффективная реализация ленивости тоже, в общем-то, требует порядочно человекочасов. Я, кстати, считаю это недостатком ленивости номер один.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Я бы заверстал, но там у вас что-то много персональных данных требуется. Я бы вообще не хотел свои ФИО/место работы раскрывать — есть такая возможность? ВАК-овская публикация мне не нужна.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
. Разместим как следует.
K>Я бы заверстал, но там у вас что-то много персональных данных требуется. Я бы вообще не хотел свои ФИО/место работы раскрывать — есть такая возможность? ВАК-овская публикация мне не нужна.
ФИО показывать надо. Вместо места работы можно указать место учебы (одно из, если несколько).
Hint: Есть такая штука как псевдоним.
Лично нам все это не нужно, но метаданные предоставляются в электронную библиотеку, которая требует от нас наличия данных. Вряд ли кто-то будет их проверять. Тем более, что публикация не научная и не требует рецензирования.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.