These are chat archives for groupoid/exe

27th
Feb 2016
Namdak Tonpa
@5HT
Feb 27 2016 00:55
Screen Shot 2016-02-27 at 2.52.24 AM.png
Screen Shot 2016-02-27 at 2.51.57 AM.png
Screen Shot 2016-02-27 at 2.51.49 AM.png
Screen Shot 2016-02-27 at 2.51.42 AM.png
nponeccop
@nponeccop
Feb 27 2016 01:13
Критику сюда писать?
Дизайн мне нравится :)
Namdak Tonpa
@5HT
Feb 27 2016 01:13
критику сразу в гитхаб лучше )
но пиши! )
nponeccop
@nponeccop
Feb 27 2016 01:13
Давай если тут все спят, я тебе в личку напишу, сделаем v2
Namdak Tonpa
@5HT
Feb 27 2016 01:14
ок
Namdak Tonpa
@5HT
Feb 27 2016 03:48
мне нужны идиоматические примеры исользования let конструкции
потому что на эрланге у нас нет let и я не особенно улавливаю зачем он нужен )
nponeccop
@nponeccop
Feb 27 2016 04:00
у вас foo(a) -> b = a + a, b * b. есть?
Namdak Tonpa
@5HT
Feb 27 2016 04:01
а т.е. это чтобы складывать последовательно цепочки выполнения?
типа простейший вложеный список из Exe конструкций ?
ну он впринципе так и описан
  record Let: * :=
         (binds: list (prod string Exe))
         (in: Exe)
как список, если в Exe всегда Let будет, будет список
Namdak Tonpa
@5HT
Feb 27 2016 04:07
наверно надо в язык еще = оператор
nponeccop
@nponeccop
Feb 27 2016 04:07
в ЛИ же нет цепочек выполнения
Namdak Tonpa
@5HT
Feb 27 2016 04:08
let in let in let in ?
типа binds: list prod Exe Exe
где Exe = Exe означает биндинг разных правого выражения на левое
nponeccop
@nponeccop
Feb 27 2016 04:09
ты понятие скоупа идентификатора знаешь? :)
локальные определения это
биндинг всегда переменной к выражению
Namdak Tonpa
@5HT
Feb 27 2016 04:10
ну я ими не пользуюсь
nponeccop
@nponeccop
Feb 27 2016 04:10
локальными переменными? ща посмотрю
Namdak Tonpa
@5HT
Feb 27 2016 04:11
ну пользуюсь, но базовую библиотеку моджно без них )
ну кароче там правильно стоит string Exe
или Var там поставить лучше
Namdak Tonpa
@5HT
Feb 27 2016 04:12
Var все равно string
так это ж богомерзкий жс
nponeccop
@nponeccop
Feb 27 2016 04:12
ну так я про смысл
Namdak Tonpa
@5HT
Feb 27 2016 04:12
в красивом коде не должно было локальных,только в сложном
и фундаментальном
ну я понял, спасибо)
nponeccop
@nponeccop
Feb 27 2016 04:13
ну всегда можно переписать бесточечно на этот случай
Namdak Tonpa
@5HT
Feb 27 2016 04:13
теперь понятно
я правильно ввобщем типа Let описал
в Exe прикольно что всему можно дать имя
и все оно будет мапится на какую-то лямбду
nponeccop
@nponeccop
Feb 27 2016 04:14
надо в отдельном месте написать синтаксис с учетом алиасов
Namdak Tonpa
@5HT
Feb 27 2016 04:14
с дырами или как угодно
nponeccop
@nponeccop
Feb 27 2016 04:15
я так ничего не понимаю.. например как будет выглядеть аппликейшен двух кейсов
Namdak Tonpa
@5HT
Feb 27 2016 04:15

можно этот

   record Bind: * := (var: string) (match: Exe)

выделить

   (case a | ... | ... ) (case b | .. )
nponeccop
@nponeccop
Feb 27 2016 04:16
ага! спасибо
Namdak Tonpa
@5HT
Feb 27 2016 04:22
кстати про буллет
он прокис внутри n2o.hs
надо менять на супермодный
в этом только одна локальная переменная :-)
nponeccop
@nponeccop
Feb 27 2016 04:26
ишшуй создавать за тебя пушкин будет? я создал
Namdak Tonpa
@5HT
Feb 27 2016 04:26
я тоже )
nponeccop
@nponeccop
Feb 27 2016 04:26
я быстрее печатаю.. молодец однако
Namdak Tonpa
@5HT
Feb 27 2016 04:27
у меня номер меньше и более полно "and other n2o JavaScript companion scripts"
:-)
bert.js и остальное
nponeccop
@nponeccop
Feb 27 2016 04:27
а не ты быстрее
Namdak Tonpa
@5HT
Feb 27 2016 04:27
канеша )
nponeccop
@nponeccop
Feb 27 2016 04:27
приятно работать
Namdak Tonpa
@5HT
Feb 27 2016 04:28
кстати мы долбоебы
nponeccop/n2o.hs#3
такая задача уже есть )
так шо я свою тоже закрою )) бгг
хаха
ты быстрее
nponeccop
@nponeccop
Feb 27 2016 04:30
В этом вопросе лучше перебдить, чем недобдить
дубликаты лучше чем пустой трекер
Namdak Tonpa
@5HT
Feb 27 2016 04:49
Screen Shot 2016-02-27 at 6.49.18 AM.png
может такие штуки стоит сделать ?
Namdak Tonpa
@5HT
Feb 27 2016 04:59
ну это для метаязыка визуализация для БНФ
а я про примеры конструкций
как лисперы любят рисовать, там же скобочки
надо все объяснять )
у нас тоже много скобочек
приемственность от лиспа имеется )
только функция по другому определяется
но можно и в лисповом синтаксисе писать если функции все определены
nponeccop
@nponeccop
Feb 27 2016 05:01
хез
Namdak Tonpa
@5HT
Feb 27 2016 05:01
и написать свой defun
Dmytro Sirenko
@EarlGray
Feb 27 2016 11:00
Ерлангівський патерн-матчинг заміняє же let
кожна локальна прив’язка в більш функціональній мові буде let
Namdak Tonpa
@5HT
Feb 27 2016 13:25
ти путаєш паттерн мачінг з біндом летівським
{A,B,C} = D — це бінд з let
case A of X -> Y; B -> C end — це паттерн мачінг оператор.
Dmytro Sirenko
@EarlGray
Feb 27 2016 13:27
А чим якісно {A, B, C} = D, ... відрізняється від case D of {A, B, C} -> ... end ? (якщо забути про тонкощі лінивості в Хаскелі)
Namdak Tonpa
@5HT
Feb 27 2016 13:33
This message was deleted
треба думати так аби парсер AST був мінімальний
Namdak Tonpa
@5HT
Feb 27 2016 13:43
  record Bind: (A:*) -> * := (var: Var) (match: A)

  record Let: * :=
         (binds: list Bind Exe)
         (in: Exe)

  record Case Receive: * :=
         (of: Exe)
         (legs: list Bind (prod Om Exe))
         (default: Exe)
nponeccop
@nponeccop
Feb 27 2016 16:55
@EarlGray паттерн-матчинг заменяет только паттерн-матчинг внутри let. Сам let он не заменяет. let b = a + a in b * b