Чтобы добавлять сообщения и комментарии, .

@voice-of-lolks:
voice-of-lolks

"To err is to be human, but compilers never forget."

@voice-of-lolks:
voice-of-lolks

swiftkey.com

@voice-of-lolks:
voice-of-lolks

Есть ли у замыканий какие-то реальные практические применения? Не знаю, как вы, а когда я вижу что-то мутабельное и closed-over, я чувствую запах говна. Замыкания не нужны?

@voice-of-lolks:
voice-of-lolks

youtube.com тоже хочу такого президента :(

@voice-of-lolks:
voice-of-lolks

cyntss.github.io

@voice-of-lolks:
voice-of-lolks

Say type, type! Gimme one mo' type!
Type, type! I can't stand the hype!
Say type, type! >>= is better than |
The pattern functor type of the polymorphic list type!

Here's catamorphic pattern for each datatype
By which all ya programs can be verified
Using its properties I can optimize
All my ADTs cuz it's generalized

Algebraic abstractions that are supported by
N-rank extension to the Haskell system of types
Allow me to express right in my source code
Categorical stuff of which you haven't even heard

My functions are lazy, is pure my eye-oh
When you say "recursion", I say: tail call
All of my programs are proved to terminate
When you say "like crazy", I say: allocate!

Say type, type! Now gimme one more!
Type, type! First map and then fold!
Say type, type! Return and then bind!
The pattern functor type of the polymorphic list type!

@voice-of-lolks:
voice-of-lolks

"First, the pattern functor type of the polymorphic list type:"

@voice-of-lolks:
voice-of-lolks

Правильно ли я понимаю, что ленивый язык в принципе можно сделать асинхронным, сказав, что thunk'и у нас начинают вычисляться сразу, а значение возвращают by need, и добавив примитивы для синхронизации? С х-ем такое кто-нибудь проделывал?

@voice-of-lolks:
voice-of-lolks

"As a more interesting example, let us consider the problem of summing a list of
numbers."

@voice-of-lolks:
voice-of-lolks

Слушаю на ютубе музыку. В середине композиции замечаю интересный коммент и решаю развернуть ответы на него. Ютуб перезагружает страницу, видео начинает проигрываться сначала.

ПЕРЕЗАГРУЖАЕТ СТРАНИЦУ БЛЯДЬ ВЫ ПОНИМАЕТЕ?! СУКИ, 2015 ГОД, ТЫ ЖЕ ГУГЛ, БЛЯДЬ, А У ТЕБЯ ТВОЕ ГОВНО СТРАНИЦУ ПЕРЕЗАГРУЖАЕТ, УБЛЮДКИ ЕБАНЫЕ, ЮИКС ДА ЕБАЛИ МЫ ЮИКС ИНТЕРФЕЙСЫ БЛЯДЬ ДА ЕБАЛИ МЫ ВАС ВСЕХ СМОТРИ ЕЩЕ РАЗ СВОЙ ВИДОС ГНИДА МЫ ВСЕМ ОТДЕЛОМ ТЕБЯ ЕБАЛИ ХАХАХА

@voice-of-lolks:
voice-of-lolks

Джуйк, а если бы вот такая[1] штука была в нормальном языке, вышло бы что-то интересненькое, как думаешь?

Навскидку, если у нас предикаты возвращают вместо бездушных boolean'ов свои же собственные аргументы, то

1) это удобно использовать в конкатенативных языках. Вместо `dup foo?` — просто `foo?`. Значение никуда не теряется.

2) можно прифигачивать к типу возвращаемого значения имя предиката: `foo? : (t -> t & foo?)`, и из этого выйдет какой-то occurence typing, или что-то такое... да?

3) если у какого-нибудь например списка захочется чекнуть например head, то придется этот список uncons'ить, а потом cons'ить обратно, и вообще ад. Ну, это в конкатенативных, да.

[1]: en.wikipedia.org
А еще cs.arizona.edu и даже cs.arizona.edu

@voice-of-lolks:
voice-of-lolks

rollapp.com

Ух ты, не знал, что так можно.

@voice-of-lolks:
voice-of-lolks

Я подошел к окну... Отдернул занавеску... Окинул взглядом распростершийся передо мной пейзаж... А погода-то сегодня прекрасная!