Size: a a a

Compiler Development

2020 April 21

МБ

Михаил Бахтерев in Compiler Development
K R
Запустите в ghci

print $ length [1..]

Нажмите Ctrl-C, и вы увидите, как length реагирует на сигналы.
Вы смешиваете понятия. Реагирует не length, а repl. В качестве упражнения предлагаю попробовать написать length так, чтобы при запуске, она при нажатии на ctrl+c выводила на экран hello.
источник

AS

Aλexander Syrotenko in Compiler Development
Коллеги, мне тут только что написали из компании Access Softek с предложением делать компиляторы.
Кто-то что-то знает, может дать отзыв?
источник

r

ruv in Compiler Development
Михаил Бахтерев
Сокет. Процессом описывается, функцией - нет. Вполне наблюдаемая разница.
Теоретически, почему бы не представить сокет (пайп) как функцию от времени (или, номера вызова функции, или вообще любое целое).

soket: t, value1 -> value2

value — отправляемый/принимаемый байт или пусто.

Технически, эта "функция" зависит от прошлых вызовов, но программа не может это установить, т.к. если t меньше, чем при предыдущем вызове, то value1 не имеет значения, возвращается закэшированное value2.

#functional
источник

А

Алексей in Compiler Development
ruv
Теоретически, почему бы не представить сокет (пайп) как функцию от времени (или, номера вызова функции, или вообще любое целое).

soket: t, value1 -> value2

value — отправляемый/принимаемый байт или пусто.

Технически, эта "функция" зависит от прошлых вызовов, но программа не может это установить, т.к. если t меньше, чем при предыдущем вызове, то value1 не имеет значения, возвращается закэшированное value2.

#functional
теоретически - да
источник

А

Алексей in Compiler Development
а практически у компьютеров конечная память
источник

r

ruv in Compiler Development
Алексей
а практически у компьютеров конечная память
Практически, программу можно выразить так, что t всегда возрастает. Тогда технически ничего кэшировать не надо. Требования к памяти остаются такие же, как и у "процесса".
источник

А

Алексей in Compiler Development
ruv
Практически, программу можно выразить так, что t всегда возрастает. Тогда технически ничего кэшировать не надо. Требования к памяти остаются такие же, как и у "процесса".
мы не можем накладывать такие ограничения на t
источник

А

Алексей in Compiler Development
это параметр
источник

А

Алексей in Compiler Development
мы либо можем подставить туда в принципе любой параметр (вплоть до t = 10 000 лет)
источник

А

Алексей in Compiler Development
либо это уже не функция
источник

А

Алексей in Compiler Development
а на самом деле, чтобы это функция заработала и была функцией нам придётся встроить в компьютер машину времени
источник

А

Алексей in Compiler Development
а если мы не можем её встроить, значит у нас t меняется независимо от нашего желания, значит это уже не функция, а процесс
источник

МБ

Михаил Бахтерев in Compiler Development
ruv
Теоретически, почему бы не представить сокет (пайп) как функцию от времени (или, номера вызова функции, или вообще любое целое).

soket: t, value1 -> value2

value — отправляемый/принимаемый байт или пусто.

Технически, эта "функция" зависит от прошлых вызовов, но программа не может это установить, т.к. если t меньше, чем при предыдущем вызове, то value1 не имеет значения, возвращается закэшированное value2.

#functional
Ну тип Вы написать такой можете. А реализовывать как? Напомню, что функции, по определению, чистые.
источник

МБ

Михаил Бахтерев in Compiler Development
Алексей
а на самом деле, чтобы это функция заработала и была функцией нам придётся встроить в компьютер машину времени
Вот вот.
источник

А

Алексей in Compiler Development
вот математики всякие могут себе позволить описывать всякие процессы в виде функций от времени
источник

А

Алексей in Compiler Development
почему?
источник

А

Алексей in Compiler Development
потому что они знают уравнения по которым эти процессы проиходят
источник

МБ

Михаил Бахтерев in Compiler Development
И это, кстати, ставит интересные вопросы о природе физической реальности. Недавно были работы о связи перечислимости с КМ. Очень интересно
источник

А

Алексей in Compiler Development
а значит могут вычислить состояние процесса для любого t
источник

А

Алексей in Compiler Development
(грубо говоря)
источник