Éminence grise
Хотя протокол до 3 можно было и поднять, хотя секаса там надо много.
Éminence grise
Если кто хочет попробовать довести мой прототип (он восстаналивает уже норм, теперь осталось доделать программирование под МС билд чтоб рефы прописывал), то репа открытая. https://github.com/ijsgaus/Paket.SDK.git
Nikolay
Какой из ФП языков ближе к Scala?
Doge
Какой из ФП языков ближе к Scala?
Смотря в каком смысле. Скала сильно отдельно стоит, потому что сочетает и продвинутые ОО фишки и достаточно продвинутую систему типов, чтобы копировать подходы из хаскеля
Éminence grise
А что значит ближе?
Nikolay
Ну. F#/OCaml/ReasonML - Семейство ML Scheme/Clojure/Lisp
Nikolay
Erlang/Elixir
Éminence grise
Я бы сказал, что скала вообще отдельно стоит, если синтаксически.
Éminence grise
У нее уникальная схема, она вообщем то контекстно зависимая грамматика, потому и компилер медленный.
Nikolay
А erlang/elixir они тоже как бы немного с другой планеты?
Éminence grise
Почему? Они как раз как и МL алгол подобные 😊
Nikolay
Но их не относят к семейству ML
Éminence grise
Ну или паскаль - скобки словарные
Doge
У нее уникальная схема, она вообщем то контекстно зависимая грамматика, потому и компилер медленный.
Если смотреть доки Dotty, то там указана контекстно свободная грамматика: https://dotty.epfl.ch/docs/internals/syntax.html
Vladislav
Erlang/Elixir
я бы эликсир глянул сам
Vladislav
как будет время
Vladislav
скажем так следующий язык, который мне реально интересно глянуть
Nikolay
Динамическая типизация
Nikolay
Фуфуфу
Éminence grise
я сомневаюсь - у них арифметика танцует от количесва типов у функции. Это меня и смущает - оператор определяется как функция двух элементов - и он свободно синтаксический.
Éminence grise
Динаическая типизация динамической типизация рознь 😊
Nikolay
Хотя нужно конечно попробовать динамическую типизацию с ФП
Éminence grise
Там вообще юзер типов нет. В принципе.
Nikolay
Ну мне она не заходит)
Éminence grise
Ну мне кроме как раз elixir-erlang из того что знаю то же не заходит 😊
Nikolay
а разница
undefined is not a function
Vladislav
undefined is not a function
сравнил кусок сделанный за 2 недели и эрланг
Vladislav
охлади
Nikolay
Ну я ещё на пхп немного писал
Nikolay
Тоже фи
Nikolay
Питон как-то хз, пытался в студенчестве учить, не осилил
Nikolay
Парад уродов :D
Éminence grise
У него своя философия и математика. Кстати очень интересная. У них нет типов определяемых пользователем. Только хинты компилятору, и то в эликсир.
Doge
я сомневаюсь - у них арифметика танцует от количесва типов у функции. Это меня и смущает - оператор определяется как функция двух элементов - и он свободно синтаксический.
Всё там норм. Та грамматика, что указана вроде бы повзоляет в операторном виде писать без контексно зависимых правил. Смотри InfixExpr
Éminence grise
Что то от лиспа есть - но типов данных больше. Базовых. А своих определять нельзя. Только синтаксически. А ядро типами не кастомными оперирует.
Éminence grise
Да вот смущает, что любой вызов практически может быть функцией, не нужно разделителей. Скорее всего все ж есть контестно свободный способ разбора парсера - но дальше.. Мрак.
Éminence grise
То есть на уровне парсера вообщем то неясно, что же будет из "a b c" - "a.b().c()" или "a.b(c)"
Éminence grise
Парад уродов :D
Парад будущего 😊
Vladislav
http://blog.tdwright.co.uk/2018/09/06/beware-runonstartup-in-azure-functions-a-serverless-horror-story/
Doge
То есть на уровне парсера вообщем то неясно, что же будет из "a b c" - "a.b().c()" или "a.b(c)"
На уровне парсера - это будет InfixOp(PrefixOp(PostfixOp(Literal(a))), Literal(b), PrefixOp(PostfixOp(Literal(c)))) Если верить той грамматике, конечно.
Éminence grise
Ну да, потому я и говорю что контекстно зависимо - синтаксис нет, а дальше
Éminence grise
То что наверху ближе всеже не к парсеру, а к стеммеру. Дальше очень сложно это парсить в АСТ
Doge
То что наверху ближе всеже не к парсеру, а к стеммеру. Дальше очень сложно это парсить в АСТ
Ну насколько я знаю, именно это производительности не сильно мешает. Там вроде самые большие проблемы при резолве имплиситов, как обычно.
Éminence grise
Ну я честно не совсем в курсе, где именно там сложность - у меня не так много опыта с компилерами, как хотелось бы. Но разрешение типов там действительно где то чудовищное даже для естественного интеллекта 😊
Éminence grise
Потому Scala и не кажется мне на что то похожей.
Doge
Потому Scala и не кажется мне на что то похожей.
Это да, она удивительным образом сочетает кучу всего из разных языков. И вот, имхо, скала местами очень грамотно и красиво спроектированна.
Éminence grise
https://rust-lang-nursery.github.io/rustc-guide/traits/index.html
Éminence grise
Очень интересный подход для разрешения типов в раст. Меня восхитило.
Éminence grise
Это да, она удивительным образом сочетает кучу всего из разных языков. И вот, имхо, скала местами очень грамотно и красиво спроектированна.
Я не спорю от слова совсем. Сам восхищался. Но имхо - излишне тяжелая. Да же Хаскель легче заходит.
Éminence grise
А от дотти жду действительно уникального языка. Без беквард компатибилити это можно сделать.
Romɑn
const currentTime = OriginalComponent => class extends Component { Что это за такое в реакте?
Vladislav
const currentTime = OriginalComponent => class extends Component { Что это за такое в реакте?
В жс класс это выражение если память не изменяет
Éminence grise
Это новый JavaScript. Инлайн классы.
Éminence grise
Ну как у нас new interface
Romɑn
Ну как у нас new interface
У нас это где?)
Éminence grise
В FSharp
Romɑn
Ну как у нас new interface
У нас так можно?)
Vladislav
А что оно делает?
Класс это функция
Vladislav
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Class_expressions
Éminence grise
https://fsharpforfunandprofit.com/posts/object-expressions/
Éminence grise
Класс это функция
Функция конструктор 😊
Romɑn
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Class_expressions
Но там дальше @currentTimeclass ShowCurrentTime extends Component { ...
Éminence grise
Сверху декоратор
Vladislav
Но там дальше @currentTimeclass ShowCurrentTime extends Component { ...
Похоже на миксин не стандартизированный
Vladislav
Из стандарта
Romɑn
https://medium.com/@adamrackis/simplifying-life-with-react-render-callbacks-cb37d58e55
Vladislav
(Который не приняли)
Éminence grise
Так сверху ж бабель
Éminence grise
И еще какая бабель 😊
Romɑn
https://medium.com/@jihdeh/es7-decorators-in-reactjs-22f701a678cd
Nikolay
Я счас взорвусь, как триста тонн тротилла
Nikolay
Я запутался с презентацией :D
Éminence grise
Излагай
Nikolay
Не знаю, как лучше объяснить суть ФП
Nikolay
Стоит ли сразу объяснять на примерах с F#, или лучше отдельно