Comments: |
beri "stydno" i nadejsha chto nikto ne uvidit. bez shutok. kogda tebe realjno ponadobica to ili budet gotovoje reshenije ili drugaja zadacha. a sejchas ty zanjat UGADYVANIJEM i PREMATURE OPTIMIZATION.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 10:40 am |
---|
| | | (Link) |
|
вся проблема в том, что замечу я. потому что я таки активно использую замыкания, и дикие стопки «лямбд-в-лямбдах» (ну, привык со схемы). то, что оно вскрылось на тесте — так это именно потому, что я всегда первым делом тащу y combinator тестировать, потому как если он не работает, то всё очень плохо в первую очередь для лично моего удобства.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 10:43 am |
---|
| | | (Link) |
|
то есть, даже состояния объектов в демо-стрелялке представляют из себя некие glorified closures. без замыканий никуда, и они должны, сука, быть дешёвые, иначе они бесполезные.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 10:47 am |
---|
| | | (Link) |
|
самая большая проблема, на самом деле, в сопряжении замыканий и вложеных функций. потому что простой вызов вложеной функции не должен создавать замыкание. то есть, их нельзя создавать по факту нахождения вложеного defun — а поэтому и нельзя применять никаких оптимизаций для этого.
1) Создавай в стэке stack frame с идэнтификатором и всем таким. Ну что там, 4 байта на вызов. Да у тебя и так наверное он создаётся, я не читал ещё. 2) При присвоении хипу значения из stack -- копируй все зависимости в хип. Ты разве этого и так не делаешь?
А, туплю, ты так и делаешь. Но да, надо ещё присваивания вышэ по стэку отрабатывать.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 11:37 am |
---|
| | | (Link) |
|
да, именно так. и пункт 2 дохера дорогой, зараза. потому что это рекурсивно ебошить ламбду, потом все её литералы, потом все её апвалуи. ну, и очень error prone тоже. и всё это надо делать при любом присваивании, и при RET.
криво, медленно, ссыкатна, и обязательно найдётся граничный случай, где оно сфэйлит. всё плохо. думаю.
Кстати, я забыл, там апвалуи должны все сохраняться или при парзинге/раскрытии макросов у тебя список нужных появляется, а остальные побоку?
И ещё, у тебя надеюсь, плюс-минус static scope? Между вызовами функцый хотя бы?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:23 pm |
---|
| | | (Link) |
|
скопинг абсолютно lexical, как полагается.
апвалуи, понятно, бережно собираются в массив, так что функция завсегда знает, какие ей апвалуи нужны и откуда. точнее, собираются ссылки типа «хочу локал с индексом idx, который живёт на upcount уровней выше». ну и, понятно, функции носят с собой BP на момент своего рождения.
я могу, конечно, весь кусок стека пиздануть вместе с замыканием, но это же ещё больший пиздец, чем плюнуть на стек вообще и аллокатить фрэймы сразу из пула. такие замыкания народу не нужны.
В языке, в котором макросы делают с AST всё, что угодно после лексера -- мне странно как-то называть scoping -- lexical.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:38 pm |
---|
| | | (Link) |
|
какая разница? в итоге всё равно lowering до (вложеных) ламбд с аргументами, так что lexical scoping — вполне нормальное название. макросы в рассмотрение попросту не принимаются, потому что пофигу, что и как они там перепишут.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:30 pm |
---|
| | | (Link) |
|
я ж могу, конечно, обучить компилятор всяким хитрым финтам, как я говорил. но компилятор и так половину кода занимает, и я не хочу его усложнять.
схемы обычно не парятся и выделают environment в хипе, но мне так нельзя: хип засрётся моментально. а у меня специфика движка такая, что если хип засрался, то происходит не GC, а ядерный взрыв.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:31 pm |
---|
| | | (Link) |
|
ну, то есть, это не совсем обычный lisp engine, а сильно ёбнутый кирпичом. отсюда и некоторые… сложности.
Вообще, у тебя по-моему надо абсолютно одинаково обходить что лямбду что любое другое дерево при присвоении его глобальной переменной и при gc.
Во всяком случае, в тех реализацыях лиспа, которые я плюс-минус понял это всегда так было.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:19 pm |
---|
| | | (Link) |
|
gc у меня нету. то есть, он есть, но его скорость меня совершенно не интересует, потому что это ситуация нештатная, при нормальной работе не возникает. с этим как раз проблем нет.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 11:41 am |
---|
| | | (Link) |
|
проблема в том, что, как я писал, я начинаю терять понимание кода. а нет трэйса в башке — значит, обязательно есть ошибка. я чую, что можно сделать как-то лучше и проще, но пока не могу придумать, как.
Потому, кстати, лисп надо писать на лиспе...
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:26 pm |
---|
| | | (Link) |
|
абсолютно без разницы, на чём писать: я же самого алгоритма уже не вижу, он постоянно каким-то краем из головы вываливается.
просто сделать медленно и гадя — не проблема. проблема сделать быстро, и с минимальным гадством.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 11:44 am |
---|
| | | (Link) |
|
движок при этом поддерживает «полузакрытые» ламбды (то есть, закрыть можно только некоторые апвалуи), тут всё нормально. дорогой сам процесс их создания.
dovaj peredelajem Erlangu sintaks. napishem tronsljator v Erlang. napechatajem stattju i pojedem na kakujunibutj konfirenciju.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 11:57 am |
---|
| | | (Link) |
|
эрланг меня интересует примерно как проблемы коренного населения африки, если честно. функциональные языки — эволюционный тупик. единственная вселенная, где они могут хорошо работать — это где компьютеры имеют неограниченую память и неограниченое быстродействие. в любой другой вселенной они будут сосать у императивщины.
ну, а вот с докладом «скриптинг видеоигр на эрланге» — это да, можно поехать в какую-нибудь ближайшую дурку, там примут. ;-)
eto ja aftaru kamenta napejsal. i ne pro igry vovse.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 12:03 pm |
---|
| | | (Link) |
|
да, до меня дошло потом. янитормаз, я просто плавно мыслю.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 12:04 pm |
---|
| | | (Link) |
|
впрочем, пункты-то, мной высказаные, всё равно никуда не деваются. я тебе гарантирую, что функциональщики будут сражаться за свою плесень так, как старые девы за свою девственность сражаются.
Na erlange ochenj udobno pisatj, ponjatnenjko. i sreda u nego zajebisj, paralleljnjenjkaja.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 12:26 pm |
---|
| | | (Link) |
|
так я и не говорю, что эрланг говно. так, попахивает только. потому что любая функциональщина попахивает: нет у нас функциональной техники, хоть сто тыщ жоп порви. а поэтому императивщина будет функциональщину всаживать.
eto k voprosu o tom kto dolzhen delatj rabotu, xuman ili mashina. ty gotov delatj rabotu chtoby mashine menjshe dostalosj i ona "будет функциональщину всаживать"
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 12:38 pm |
---|
| | | (Link) |
|
это к вопросу о балансе, вообще-то. как я уже говорил, при наличии бесконечного времени и бесконечных ресурсов машина может сделать всё. только у меня нихера нет ни бесконечного времени, ни бесконечных ресурсов.
так что пока функциональщики ждут завершения своего «quicksort» (который, конечно, очень красивый однострочник, но нихуя не quick, и к оригинальному алгоритму хора вообще отношения не имеет), мы уже давно написали код, оттестировали и испрльзуем.
From: | (Anonymous) |
Date: | June 27th, 2017 - 03:32 pm |
---|
| | | (Link) |
|
техники нет, зато оптимизировать и распараллеливать проще в тыщу раз (и писать и поддерживать само собой)
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 03:37 pm |
---|
| | | (Link) |
|
вот поэтому у нас так мало хороших вещей. потому что мало кого ебёт, как оно работать будет, зато много кого ебёт, чтобы «хуяк-хуяк-ин-да-продакшэн».
чтобы хотя бы догнать по скорости императивщину — надо нахуй повыкидывать почти всю функциональщину, и ввинтить таки императивщину. а иначе всё это «распараллеливание» и «оптимизация» нужны только для того, чтобы оно не АДОВО ТОРМОЗИЛО, а просто «ну ничо так, не очень и тормозит иногда».
From: | (Anonymous) |
Date: | June 27th, 2017 - 07:16 pm |
---|
| | | (Link) |
|
rust функциональный язык? ATS функциональный язык? я вот тоже пишу на функциональном языке с деструкторами в явном виде, например. понятно что это всё сырые поделия, но всяко компромисс должен появиться какой-то нормальный. (хочется верить что форт каким-то образом тут оживёт, в этом качестве)
хачкель в некторых бенчмарках уделывает си, притом что в хачкель вложено в миллиард раз меньше сил, чем в компиляторы си, и он ещё молодой, исследовательский, несерьёзный. начнут в индустрии применять - там уже можно будет что-то сказать. это притом что хачкель крайне ебанутый и маргинальный со своей ленивостью.
>вот поэтому у нас так мало хороших вещей. потому что мало кого ебёт, как оно работать будет, зато много кого ебёт, чтобы «хуяк-хуяк-ин-да-продакшэн». тамушта чтобы заебись писать на байтоебских языках и асме, нужно иметь опыта и страсти к программированию примерно как у тебя, и чтобы альтернатив не было. это ж блджад как каста жрецов в египте была, потому что язык невъебенно сложный. а если за это же время можно сделать больше, то зачем тратить время? даже с точки зрения хобби, не с точки зрения индустрии
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 07:37 pm |
---|
| | | (Link) |
|
>rust функциональный язык?нет, конечно. >ATSхуй знает, что это. >хачкель в некторых бенчмарках уделывает сиа как только мы перестаём делать микробенчмарки и начинаем писать real-world code, хацкель сразу же атомно просасывает и идёт нахуй. великие чудеса функциональщины. >молодой>начнут в индустрии применятьесть мнение, что 27 лет для языка программирования — это нихуя не «молодой». но пусть хацкелисты дальше ждут, когда их «молодой язык начнут применять в индустрии». тащемта, даже немного стыдно над убогими издеваться. но не настолько стыдно, чтобы прекратить. >чтобы заебись писать на байтоебских языках и асмеа зачем ты асм сюда приплёл? >потому что язык невъебенно сложныйнет. просто не надо считать, что сишечка — это язык высокого уровня. любой нормальный современный язык высокого уровня (дишечка, например) спокойно позволяет использовать то, что удобней. можно даже полностью в функциональном стила на них писать, только не очень ясно, нахуя. >если за это же время можно сделать больше…говна. зачем делать больше говна — тоже Великая Функциональная Загадка. в качестве иллюстрации к тому, как прелестна и удобна функциональщина, рекомендую реализацию quicksort на хацкеле. не однострочник, который не является квиксортом, а настоящий квиксорт. глядя на этот код, никак не поспоришь с тем, что можно сделать больше: такую кучу говна действительно не сразу высрешь, и тем более не поймёшь — даже чего-нибудь употребив.
From: | (Anonymous) |
Date: | June 27th, 2017 - 08:41 pm |
---|
| | | (Link) |
|
>ATS это эмель, который быстрее плюсов, можно доказывать корректность байтоебства. писать на нём пока сложно, скорее всего то что обязательно доказывать, будет выводиться как типы. с растом я проебался, думал что там ссылочная прозрачность, но механизмы безопасного байтоебства похожие на ats, может они оттуда их и взяли.
>тащемта, даже немного стыдно над убогими издеваться. но не настолько стыдно, чтобы прекратить. дык хаскель и не позиционриовался никогда как индустриальный язык, spj прямым текстом говорил что это research language, и тот факт что его пытаются разные люди впихнуть в индустрию сам по себе странный. ленивость не нужна и сильно всё усложняет. молодой в смысле человеколет, потраченных на компилятор. вот окамл гораздо более по-теме, но он в основном используется для Coq, как и оригинальный ML в свое время был сделан для написания какой-то там системы док-ва теорем.
>в качестве иллюстрации к тому, как прелестна и удобна функциональщина ... спасибо, я и так пишу на ней на работе, конечно не на хаскеле. хаскель ебанутый и непрактичный язык с ленивостью и сайд-эффектами-как-монадами(в полезности и общеприменимости такого подхода я не уверен), ситуация с тем что его пропихивают в индустрию странная. понятно что с ссылочной прозрачностью классическую сортировку не написать никак, ну так если очень надо, то есть массивы и ref'ы, ну или в монады завернутое это всё. для уровня пониже рефов появляются инструменты, типа того что в ATS или расте, они пока сырые, но хотя бы тебе не дадут написать говна(в отличие от дишечки и плюсов).
>…говна. зачем делать больше говна — тоже Великая Функциональная Загадка. говорю же, не дают писать говно. это на плюсах просто делать говно. с дишечкой сложнее, но тоже можно. ниже уровня рефов пока не умеют спускаться безопасно(ну не оч. юзабельно), но учатся. никто не мешает писать сортировки с рефами/массивами на камле или монадами на хаскеле, так, как тебе нравится, просто по-умолчанию мутабельности нет. принцип как в дишечке: хочешь мутабельность - держи, но придется приложить дополнительные усилия, хочешь мемори-менеджмент - ещё доп. усилий, зато понятно где мутабельность и где мемори менеджмент, оно не разбросано по коду и иммутабельность дешевле чем в дишечке.
>а зачем ты асм сюда приплёл? я не знаю, до какого уровня байтоебство для тебя приемлемо, судя по геймдев-постам может тебе ещё без ассемблерных вставок мир не мил. асмеры говорили примерно то же самое что и ты, но про сишечку в сравнении с асмом, не знаю, чего ожидать.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 09:06 pm |
---|
| | | (Link) |
|
>дык хаскель и не позиционриовался никогда как индустриальный язык вот всегда так: сначала «подождём, пока в индустрию», а потом: «не сильно и хотелось». так я не понял: ждать таки индустрии, или не сильно и хотелось?
>у так если очень надо, то есть массивы и ref'ы привет, императивщина! без тебя наша функциональщина традиционно сосёт, так что пришлось втягивать, и делать вид, что так и надо.
>но хотя бы тебе не дадут написать говна(в отличие от дишечки и плюсов) лол. ну да, ведь ссылки и мутабельность в крестах такие нефункциональные, а ссылки и мутабельность в ФункциональныхНеКрестах такие функциональные! разницы, правда, нет — но это можно не замечать, как не замечают, что без императивщины функциональщина просасывает. чего не замечаем — того и нет.
>говорю же, не дают писать говн а пробельчики ставить не заставляют, не?
но оно, в общем, правильно: дай функциональщику доступ к байтам — так он всё поломает и сам ёбнется. это ж Слишком Сложно (твои слова, кстати).
а если серьёзно, то я ниже написал: функциональщина — очень нишевый инструмент. а как только её вытягивают из ниши и пытаются забивать ней все гвозди подряд, то всё становится очень плохо. потому что при наличии отсутствия техники с неограниченой памятью и неограниченым быстродействием функциональщина годна для прототипов, throw-awayев и задач, где скорость работы и потребление ресурсов не очень важно. однако подход: «а, херня, купим ещё десяток серверов» — это как раз подход, из-за которого у нас так мало хороших вещей.
From: | (Anonymous) |
Date: | June 27th, 2017 - 09:39 pm |
---|
| | | (Link) |
|
>вот всегда так: сначала «подождём, пока в индустрию», а потом: «не сильно и хотелось». так я не понял: ждать таки индустрии, или не сильно и хотелось? по-другому: очень странно что такой ёбнутый язык как хаскель вообще где-то кого-то уделывает и лезет в индустрию. это интересно, интересно что дальше. опять же, думаю что должны появиться гибридные языки на основе ФЯ. сейчас ближайшее к такому - это окамл.
>привет, императивщина! без тебя наша функциональщина традиционно сосёт, так что пришлось втягивать, и делать вид, что так и надо. а как иначе? у функциональщины есть плюсы и есть цена. всё равно на практике придется гибридные подходы исповедовать, которые что-то гарантируют.
>лол. ну да, ведь ссылки и мутабельность в крестах такие нефункциональные речь была про управление памятью. для рефов плюсы функциональщины в том, что понятно, где мутабельно, а где - нет. с монадами это разграничение ещё жестче(хотя и нихуя не понятно становится, но может что-то и придумают).
>а пробельчики ставить не заставляют, не? ну это конкретная дибильная традиция, слава богу она не везде. тем более что вроде о подходе речь.
>но это можно не замечать, как не замечают, что без императивщины функциональщина просасывает. чего не замечаем — того и нет. ну это надо сектантом быть, чтобы в этот исторический момент полностью отказываться от императивщины, просто функциональщина много где упрощает жизнь, как сборщик мусора, поэтому я и ожидаю появления гибридных языков на функциональной основе.
>но оно, в общем, правильно: дай функциональщику доступ к байтам — так он всё поломает и сам ёбнется. это ж Слишком Сложно (твои слова, кстати). ну чо, я согласен, именно так и произойдет, со мной по крайней мере. нет нормального безопасного способа байтоебства для таких дураков/трусов как я. есть люди с простреленными ногами и кучей опыта, за счет них проблема решается. лучше сделать это проще и безопаснее. это пытаются сделать проще и безопаснее.
> функциональщина — очень нишевый инструмент. и высокоуровневые языки, и сборщик мусора тоже были(и в каком-то смысле остаются) нишевыми инструментами примерно по тем же причинам. те кто хотят - делают хорошие вещи(и функциональные языки им не мешают совершенно). ещё раз, функциональный подход можно сделать гибридным, и решить проблемы/пофиксить узкие места, то есть делать сколь угодно хорошие вещи. к этому всё и идет. понятно что пуризм это забавно, но не практично.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 09:08 pm |
---|
| | | (Link) |
|
это, и ещё то, что программистов перестали учить как инженеров, и учат заместо этого как маляров. потому что у хорошего инженера задача выжать побольше из доступных ресурсов, а у маляра — быстро докрасить забор и съебать, потому что обед скоро.
From: | (Anonymous) |
Date: | June 28th, 2017 - 12:28 pm |
---|
| | | (Link) |
|
научатся люди писать быстро и корректно, рынок насытится, нахуй станут не нужны тормозные половинчатые решения, будут учить инженеров. если сейчас в этой области эльдорадо, то чего учить, бери кирку и ебашь
(поэтому это эльдорадо нужно схлопнуть побыстрее, так чтобы написать и поддерживать работающее решение мог человек соверешенно тупой, и функциональщина в этом смысле адское благо, подталкивающее падающего)
так-то что ди, что функциональщина - одно и то же worse is better, только с разных сторон. где-то проще и больше тормозов, где-то лучше производительность, но можно стрелять в ногу.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 28th, 2017 - 01:06 pm |
---|
| | | (Link) |
|
>функциональщина в этом смысле адское благо, подталкивающее падающего в каком-то смысле да. увы, тенденция «купим ещё два десятка серверов» вместо «потратим чуть больше денег и времени, наймём нормальных инженеров» нихера видимо не стремится к исчезновению. и не исчезнет, потому что главное — быстро сделать говно и продать, а как оно дальше работать будет, то уже не ебёт.
возможно, это когда-нибудь изменится, но я не уверен, что доживу. а потому для меня оно совершенно неважно, я ненавижу «хуяк-хуяк-ин-да-продакшэн» здесь и сейчас.
From: | (Anonymous) |
Date: | June 28th, 2017 - 08:33 pm |
---|
| | | (Link) |
|
количество оверинжиниринга на ровном месте сравнимо с количеством хуякхуяка к тому же обязательный хуяк-хуяк не везде, а в сраном вебе, корпоративном десктопном софте да в неинди играх. надеюсь что для первых двух ниш придумают конструкторы и они сдохнут.
не знаю про околожелезячный мир но трудно поверить что там хуякхуяк, всегда есть области с такими требованиями, что такой подход не взлетит. в академии тоже хуякхуяк не прокатит.
опять же, от конторы к конторе это должно сильно варьироваться
чтобы приблизить, нужно либо ставить высокую планку и задачи, которые в принципе можно только хорошо и правильно решить, либо приближать смерть уёбищных областей. если говно прокатывает, значит конкуренции нет, а вот будет конкуренция и говно прокатывать не будет. вот условно jetbrains взяли и сделали IDE лучше остальных, теперь на их рынок полную хуйню уже не получится выпустить, даже забесплатно.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 28th, 2017 - 08:54 pm |
---|
| | | (Link) |
|
>в неинди играх тю. в «неинди» как раз в большинстве таки берут что-то нормальное. а вот сраная индюшатина ебошит гнойное юнити, которое уебанское и тормозит абсолютно везде и абсолютно при любых условиях. ну, и почти все пидарасы с кикстартера тоже гной жрут.
>jetbrains если это лучшие, то я боюсь увидеть «просто средних». читал я как-то откровения их дивилопирав по поводу синтаксического разбора, и отбил всю руку.
впрочем, это примерный уровень всех пользователей всяких IDE: мозгов нет, IDE есть, хуяк-хуяк…
pochetal pro ATS, urodstvo kakoje-to
Anon, ob'jasni mnje na ponjatnom jazyke v chom izjum u etogo ATS? chego oni tam "dokazyvajut"? vygljadit kak jobanaja tavtologija: napisali odno opredelenije dva raza i potom radujuca chto sovpalo.
From: | (Anonymous) |
Date: | June 28th, 2017 - 08:16 pm |
---|
| | | (Link) |
|
доказывают компилятору что типы сходятся (наверное такие доказательства как-то автоматизируют, или полуавтоматически сделают, примерно как с выводом типов) поскольку типы зависимые, в них можно разные инварианты кодировать, в том числе и про выделение памяти.
no tam zhe tupo dva raza odno i tozhe napisano! jesli ja opisal sootvetsvije tipov putjom opisanija funkcii, naxera zhe mne vtoroj raz pisatj funkciju?
From: | (Anonymous) |
Date: | June 29th, 2017 - 04:19 pm |
---|
| | | (Link) |
|
потому что ATS'у надо объяснить почему то, что ты написал в первый раз (тип) типизирует функцию, описанную во второй раз, самому ему догадаться будет сложно. он сам не поймет, что функция задает соответствие типов, а если бы умел как-то, то для этого у него должна была бы быть встоенная система автоматического доказательства теорем, потому что типы очень сложно устоенные, не хиндли-милнер какой-нибудь
давай пример какой-нибудь, может я и вопроса-то не понял или можно вот тут почитать: http://thedeemon.livejournal.com/tag/ats
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 29th, 2017 - 04:28 pm |
---|
| | | (Link) |
|
а сказал бы сразу, кому нравится — я бы и не гуглил даже…
From: | (Anonymous) |
Date: | June 29th, 2017 - 05:19 pm |
---|
| | | (Link) |
|
хотел, но опасался, вдруг посты с ссылками сразу сносятся
не гуглил бы в смысле того что не стоит внимания?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 29th, 2017 - 05:21 pm |
---|
| | | (Link) |
|
вот эта конкретная личность не просто мне антипатична, а прочно записана в разряд «идиоты». поэтому я могу, конечно, пропустить какой-то бриллиант, если оно ему понравилось, но вероятность небольшая. а вот игнор окупается.
koroche. ja ponjal. ATS eto takaja sistema tipov: my mozhem utverzhdatj chto chislo A pridalezhit posledovateljnosti X iz generatora Y.
komu naxuj takaja sistema tipov nuzhna aftorov ATS ne interesujet, ix interesujet chto oni mogut proveritj chto funkcija "factorial" vertajet chislo tipa faktorial.
jobanyj suka pizdec. u menja net slov. ljudjam nexvatajet tipov chtoby predstavljatj otnoshenija, znanija, razmernosti, a oni zanjaty chislojobstvom poshli oni naxuj! chislojobstvo eto tezhe mandaty, tojestj manady.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 30th, 2017 - 01:23 am |
---|
| | | (Link) |
|
так это… идеальная функциональщина: унылая и бесполезная.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 30th, 2017 - 11:33 am |
---|
| | | (Link) |
|
эрланг точно так же уныл и бесполезен, как и вся остальная функциональщина.
v nom net chislojobstva i tipodrocherstva. a tipy tam takije chto ty ix dazhe ne zamechajesh!
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 30th, 2017 - 11:53 am |
---|
| | | (Link) |
|
пользы в нём тоже нет, увы.
poljzy doxua. mnesia napremer. a parser na erlange napejsatj vsjo ravno chto na BNF. 100500 processov roditj eto shtatnaja situacija.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 30th, 2017 - 01:23 pm |
---|
| | | (Link) |
|
ну, то есть, нихуя пользы, как я и говорил. кроме обогрева атмосферы, и увеличения продаж у производителей серверов.
kakogo obogreva? o chom ty?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 30th, 2017 - 02:22 pm |
---|
| | | (Link) |
|
обычного такого обогрева — путём нагрева процессоров, занимающихся хернёй.
Кстати, отличный язык для этого дела. В смысле -- для всяких квестропогов в стиле морровинда. Просто ваще идеально подходит (ну, если не вспоминать про всякую девопсятину и вопросы сборки, чисто по семантике и синтаксису).
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 28th, 2017 - 10:00 am |
---|
| | | (Link) |
|
для них у меня драфт своего есть, основаного на смолтолке.
Вот только смоллток-то всё-таки болезненный какой-то.
И потоки там не встроенные.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 28th, 2017 - 10:49 am |
---|
| | | (Link) |
|
смолтолк отличный для реализации всяких объектов. тем более, я специально его точил под рогалики, так что там можно динамически перекрывать любые свойства любых объектов (и потом отпускать, если надо). по какому поводу всякие, например, фичи типа «броня+2» реализуются именно как написано: броня цепляет к персонажу объект, который перекрывает `getHP`, добавляя к результату два; а при снятии посылает сообщение: «мои абилки — отвалитесь!»
а потоки там не нужны. потому что никто в здравом уме не будет делать весь игровой движок на чём-то подобном. даже до самого упоротого функциональщика доходит, что не надо, когда его говнище неиграбельно из-за адовых тормозов.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 11:59 am |
---|
| | | (Link) |
|
к тому же все адепты функциональщины будут сражаться за своё говнище до последней капли крови оппонента. «дидам было хорошо — и нам пойдёт, НИНАДА!»
Erlang eto ochenj praktichnyj jezyk, a vot kak raz tvoj Y-combinator eto CHISTOJE DROCHEVO pokruche bljatj manad vashix!
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 07:42 pm |
---|
| | | (Link) |
|
дададада, про практичность функциональщины, а также про то, что функциональщина завоюет мир, я слышу уже кучу лет. но каждый раз при расспросах оказывается, что функциональщики ждут техники с неограниченой памятью и неограниченым быстродействием — а уж тогда они точно всем покажут, как рулят.
а y combinator — отличный тест замыканий, и забавное упражнение в лямбда-исчислении. создан был именно в таком смысле, и ни на что большее никогда не претендовал.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 07:45 pm |
---|
| | | (Link) |
|
и на всякий случай: я не сказал, что эрланг говно. я говорю, что вся функциональщина в целом — инструмент для очень ограниченой области применения. а как только из неё пытаются сделать универсальный инструмент — она тут же волшебным образом начинает сосать.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 07:48 pm |
---|
| | | (Link) |
|
а, и о том ещё, что — как и все области, где есть хумансы — она переполнена ретроградами, у которых дидывоевали, говно уже стало родным, и убирать это говно они никому не позволят, потому что Функциональные Скрепы.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 12:00 pm |
---|
| | | (Link) |
|
вон, у большинства лиспов до сих пор car и cdr. даже у меня car и cdr. а что это значит? а нихуя это не значит, это у дидов так куски ячеек назывались. которых нет уже — ни дидов, ни ячеек. а car и cdr есть.
У Деда так, кстати, назывались регистры процэссора, в которых хранились голова и остальное списка.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 02:16 pm |
---|
| | | (Link) |
|
да, я тоже старый, память ни к чёрту, перепутал.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2017 - 12:02 pm |
---|
| | | (Link) |
|
о. до зоркого глаза наконец дошло, что ты не ему писал. лол. надо меньше думать, надо больше пить. было б чего ещё…
1) Нет.
Мне нравится синтаксис эрланга. Он понятный. Он понятный не только мне, масса примеров когда нуба из жабы посадили за erlang, он через неделю начал коммитить -- тому подтверждение.
Я вполне уверен, что никакими малыми усилиями я не смогу это улучшыть -- только ухудшыть.
Потому, кстати, проекты вроде elixir, которые начинаются с "Erlang всем хорош, только вот синтаксис какой-то нетакой" кажутся мне подозрительными.
2) Я вполне могу съездить на конференцыю по физике, только денег на это нет.
3) Лучшэ транслятор с SQL 2.0 в PostgreSQL AST сделай.
Тем более что... Ты будешь смеяться, изначально в postgres его rule system рассчитывалась под как раз расшыренные теоретико-множэственные операцыи -- т.е. фактически планировалось, что при помощи rules будут функцыонально задаваться отношэния. Потом это загнулось, да.
chetal pro AST, nashol "PASTA". quote: "it allows you to Write SQL queries in Haskell without resorting to string/text concatenation."
FINALLY BLJATJ! na 15j god do zorkogo glaza doshlo!
Dlja vsex jazykov eto djelajut, vesgda govno poluchajet sja.
potomushto delajut nepraviljno s samogo nachala. A Relation must be a first class object of the lang in the frst place.
i delajut ne sovsem eto, a delajut "oop" presentaciju zaprosa -- bozhe suka soxrani!
a kogda ja tebe pisal chto Data Language dolzhen bytj vstrojenyj! chto SQL kak stand-alone instrument bezpolezen... ty smijalsja. i ne toljko ty, dazhe aftor SQLite smejalsja. duraki. | |