Size: a a a

Compiler Development

2020 February 03

А

Алексей in Compiler Development
вот в этой
источник

А

Алексей in Compiler Development
конечно по системе типов TS папиров с красивыми греческими буквами не написано, но тем не менее
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
ну по факту оригинальный Y комбинатор тоже не выразим напрямую
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
только через Fix
источник

OS

Oleg Stotsky in Compiler Development
Где не выразим?
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
в системе с типами
источник

OS

Oleg Stotsky in Compiler Development
Ну да
источник

OS

Oleg Stotsky in Compiler Development
Там xx подтерм
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
type Rec' a = Fix (Flip (->) a)

unfold'' = unFlip  . unfix -- ~ out
fold''   = Fix . Flip -- ~ In
y f = let f' = f . join unfold'' in f' $ fold'' f'
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
но решимо через Fix
источник

KR

K R in Compiler Development
Andrei Kurosh
по-моему этот пример отлично иллюстрирует разницу между математиками и инженерами. если есть corner case, который система типов не позволяет выразить, математик скажет "система не годится" и пойдет изобретать новую, а инженер использует any :)
Угол часто можно срезать без особых проблем написанием какого-то количества служебного кода. Всегда есть два выхода. 😊
источник

KR

K R in Compiler Development
Алексей
вот в этой
Кстати, все, наверное уже знают, что в Ocaml параметры типов 'a, 'b читаются как Альфа, Бета.

А как читается 'c?
источник

А

Алексей in Compiler Development
K R
Кстати, все, наверное уже знают, что в Ocaml параметры типов 'a, 'b читаются как Альфа, Бета.

А как читается 'c?
а я не знал
источник

KR

K R in Compiler Development
Алексей
а я не знал
Ну так INRIA'вцы читают. Наверное, где-то на записи можно найти - я вживую слышал. И забыл просить про 'c.
источник

А

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

А

Алексей in Compiler Development
чем их обычные буквы не устроили, непонятно
источник

IT

Ilya Tarasov in Compiler Development
MaxGraey
Под все эти описания можно подогнать любой современный язык.
А вот, что еще придется изучить физикам-ядерщикам и чему они не будут рады:
1. Понятие монад, функторов, линз, каррирования да и вообще хотябы немного погрузиться в лямбда исчисления
2. Научиться мыслить в функциональном и декларативном стиле, без циклов, без изменяемых переменных
3. Уметь переводить уйму алгоритмов написанных в императивном стиле в функциональный, желательно на лету (вот это самое сложное)
4. Научить или мотивировать своих коллег по цеху так же в это углубиться

Боюсь это слишком большая когнитивная нагрузка для человека, которому просто нужно быстро построить мат или физ модель / проверить гипотизу / обработать данные / обучить нейронную сеть. Еще не стоит забывать что у датасатанистов и физиков ядерщиков голова сильно забита кучей других вещей.

Чисто мое мнение - язык не должен быть как изощренное французкое блюдо, котым нужно трапезничать под Шато Марго 1920го года, разбираясь во всех его тонкостях приготовления и вкусовых нотах. ЯП просто должен хорошо выполнять свою функцию в той области для которой он проектировался или снискал популярность, и чем проще и быстрее им нучатся пользоваться тем лучше.

Ну и из области жуткой фантастики (или нет), которая надеюсь никогда не произойдет:
Представьте если бы ПО для поиска вакцины от вируса который выкосил треть населения мира былл написано на редком языке Х и так случилось что в ту треть входили все специалисты вырусологи, которые к тому же знали и язык Х, и могли бы поправить ошибку, которая не давала получить правильные результаты, или доработать ПО. Время было бы упущено, пока кто то из оставшихся специалистов разбирался в тонкостях этого редкого Х
Я бы вот как долгое время работавший физиком прокомментировал, но нужен ли тут флейм?
источник

AT

Alexander Tchitchigin in Compiler Development
K R
Кстати, все, наверное уже знают, что в Ocaml параметры типов 'a, 'b читаются как Альфа, Бета.

А как читается 'c?
"Гамма", очевидно! 😃
источник

KR

K R in Compiler Development
ML древний как ужас - он, скорее всего, старше половины здесь присутствующих. Греческие буквы использовались в логике, откуда пошёл ML. И тогда UTF-8 не было, да и с 8-ми битными кодировками было как-то не очень хорошо.
источник

YS

Yuriy Syrovetskiy in Compiler Development
вот на Хаскеле, чисто как упражнение

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}

import Prelude hiding (any)

main :: IO ()
main =
 print $
   (\(x :: forall a . Any a => a) ->
       (x :: Int -> Int) (x :: Int))
     any

class Any a where
 any :: a

instance Any Int where
 any = 0

instance Any (a -> a) where
 any = id
источник