Size: a a a

Compiler Development

2021 April 28

EL

Evgeny Link in Compiler Development
laziness в if/else clauses вы, конечно, за laziness не считаете?
источник

s

suhr in Compiler Development
Чтобы было быстро, требуется совсем немногое:

- Не плодить thunk'и ленивыми вычисляниями
- Не копировать данные на каждый чих (yay линейные типы!)
- По возможности не боксить данные
- Оптимизировать рекурсию
источник

EL

Evgeny Link in Compiler Development
Вот да. А есть уже подобные функциональные языки?
источник

K

Kir in Compiler Development
Зато ленивость - это красиво
источник

EL

Evgeny Link in Compiler Development
Если не форсить иммутабельность всего и вся, то декларативно описывая программы, можно добиться производительности не ниже, чем с императивщиной, кмк
источник

ДК

Дмитрий К in Compiler Development
Настолько ничего, что про этот парадокс даже на вики написано: https://en.wikipedia.org/wiki/Paradoxes_of_material_implication
источник

K

Kir in Compiler Development
> не форсить иммутабельность
> декларативно

Как эти фразы оказались в одном предложении?
источник

EL

Evgeny Link in Compiler Development
Особенно с profiling guided optimizations, ибо у декларативщины намного больше свободы в том, что может делать рантайм
источник

s

suhr in Compiler Development
Линейные типы, опять же.
источник

s

suhr in Compiler Development
Даже Idris так умеет.
источник

B

Brenoritvrezorkre in Compiler Development
Это не парадокс логики, это "парадокс" как несоответствие некоторой логики и того, как мы используем "если, то" в естественном языке.
источник

EL

Evgeny Link in Compiler Development
Это несвязанные вещи
источник

K

Kir in Compiler Development
В логике нет парадоксов, иначе из неё бы выкинули что-нибудь до состояния "парадокса нет"
источник

ДК

Дмитрий К in Compiler Development
Спасибо, я умею читать.
источник

EL

Evgeny Link in Compiler Development
let a = 'A'
a = 'B'

===

const a = 'A'
const b = 'B'

"больше декларативности" не появилось
источник

K

Kir in Compiler Development
Появилось, стало проще рассуждать о зависимости значений
источник

ДК

Дмитрий К in Compiler Development
Некоторые логики заигрались в символы и потеряли связь с реальностью. Материальная импликация по сути никакого отношения именно к импликации (причинно следственной связи) не имеет.
источник

EL

Evgeny Link in Compiler Development
Многие алгоритмы можно делать in place, а хаскель без мутабельных дататипов обычно вместо этого запускает GC-мясорубку в RAM
источник

K

Kir in Compiler Development
Логика вообще не имеет отношения к реальности, её вместе с математикой используют из-за internal consistency
источник

ДК

Дмитрий К in Compiler Development
Есть чуть менее бесполезные логики, которые основаны на реальности.
источник