Home
golang
golang@conference.jabber.ru
Суббота, 18 июня 2016< ^ >
Deirz установил(а) тему: Go Programming Language.
|| Изучаем: https://gobyexample.com/
|| Тур: http://tour.golang.org/
|| Как писать код: http://golang.org/doc/code.html
|| Как писать эффективный код: http://golang.org/doc/effective_go.html
|| FAQ: http://golang.org/doc/faq
|| 99% ответов о языке Go тут: http://golang.org/ref/spec
|| Сторонние либы: http://godoc.org/ https://github.com/avelino/awesome-go
|| Логи: http://chatlogs.jabber.ru/golang@conference.jabber.ru/
|| This chatroom does not adhere to any codes of conduct, be they implied or explicitly stated by someone. Your feelings can and WILL be hurt without a warning.
Конфигурация комнаты
Участники комнаты

GMT+3
[00:40:16] κpmy вышел(а) из комнаты
[00:47:11] MaXGGXaM вошёл(а) в комнату
[01:08:44] plumbum вышел(а) из комнаты
[02:12:14] krab вошёл(а) в комнату
[02:43:28] mantyr@jabberon.ru вышел(а) из комнаты
[02:46:38] debasher-9.6.2-nightly вышел(а) из комнаты
[04:00:39] Deirz вышел(а) из комнаты
[05:06:50] krab вышел(а) из комнаты: Left Vacuum-IM
[08:09:56] begemot_sun вошёл(а) в комнату
[08:25:09] Kittycat вышел(а) из комнаты
[08:29:57] Kittycat вошёл(а) в комнату
[09:17:53] 5UN5H1N3 вошёл(а) в комнату
[09:35:57] mantyr@jabberon.ru вошёл(а) в комнату
[09:42:55] plumbum вошёл(а) в комнату
[09:54:00] avz вошёл(а) в комнату
[11:09:10] avz вышел(а) из комнаты
[12:07:18] MaXGGXaM вышел(а) из комнаты
[13:33:13] MaXGGXaM вошёл(а) в комнату
[14:24:53] MaXGGXaM вышел(а) из комнаты
[14:40:45] plumbum вышел(а) из комнаты
[14:49:54] MaXGGXaM вошёл(а) в комнату
[15:01:47] valexey вошёл(а) в комнату
[15:02:13] valexey вышел(а) из комнаты
[15:03:29] κpmy вошёл(а) в комнату
[16:00:37] <κpmy> пщ
[16:00:38] <xep> пщ!
[16:07:32] <Deirz> пщ indeed
[16:10:25] <κpmy> по выходным тут тихо
[16:12:38] <azovcvb> все делом заняты
[16:14:36] <κpmy> отсыпаются чтоли
[16:15:55] <azovcvb> бухают небось на природе
[16:20:21] azovcvb вышел(а) из комнаты
[16:30:55] <mantyr@jabberon.ru> На следующей недели буду на Golang кодить:)
[16:31:00] <mantyr@jabberon.ru> Пока да, выходные:)
[16:44:22] <κpmy> https://www.kineman.com/new/webapp/index.php
[16:45:42] <κpmy> анатомически правильная механическая модель скелета
[16:45:47] <κpmy> можно гопника сделать)
[16:48:08] Deirz вошёл(а) в комнату
[16:49:26] <κpmy> http://i.imgur.com/p54O7Pt.png
[16:56:58] plumbum вошёл(а) в комнату
[16:57:14] <κpmy> залипуха
[16:58:03] <Deirz> вообще
[17:00:43] <Deirz> чёт соснул я с командным синтаксисом
[17:01:02] <κpmy> а чё так?
[17:01:42] <Deirz> объявления и вызовы парсятся через задницу
[17:02:02] <Deirz> ну и переменную от вызова функции без параметров не отличишь
[17:02:38] <Deirz> костыли повсюду втыкать надо, ну лан
[17:04:44] <κpmy> ну да, функции надо скобочками снабжать всегда, убогонько
[17:05:08] <Deirz> даже и со скобочками
[17:05:28] <Deirz> x и (x) не должны кардинально различаться семантикой
[17:05:35] <Deirz> как и x и ((((x))))
[17:05:42] <κpmy> ну так x() же
[17:06:03] <Deirz> ну так да
[17:06:35] <κpmy> если у тебя нет ссылок на функцию, то можно отличить легко - переменная не может валяться просто так в коде, она либо справа от присвоения либо слева
[17:06:42] <Deirz> арифметика и любые инфиксные операторы ещё плохо живут в командном синтаксисе
[17:07:32] <Deirz> callx (a + b) 3 + 2 парсить приходится лукахедом постоянным
[17:07:36] <κpmy> а есть живой пример использования?
[17:07:51] <κpmy> предполагаемого
[17:08:23] <Deirz> вот тупенький пример
[17:08:26] <Deirz> func progress step number count number : number {
    var next number
    var counter number
    for counter < count {
        let next (next + step)
        let counter (counter + 1)
    }
    next + 0
}
progress 2 10
[17:09:48] <κpmy> next + 0?
[17:09:51] <Deirz> ага
[17:10:00] <Deirz> чтобы next как переменная была распознана
[17:10:08] <Deirz> а не как вызов next без параметров
[17:10:38] <κpmy> а ты не составил список объектов скоупа?
[17:10:43] <Deirz> я так понял это болезнь всех языков с подобным синтаксисом
[17:10:51] <κpmy> вон там написано var next number
[17:11:00] <Deirz> составил
[17:11:04] <Deirz> но это не панацея
[17:11:10] <Deirz> ведь может быть и переменная-функция
[17:11:20] <κpmy> ну тогда ты решишь, что это вызов
[17:11:35] <κpmy> а чо у тебя просто так next валяется, она зачем?
[17:11:46] <κpmy> допустим, она без + 0
[17:11:50] <Deirz> всё равно неоднозначность появляется - использовать переменную как переменную или вызвать всё-таки
[17:12:18] <Deirz> значение последнего выражения возвращается функцией
[17:12:31] <κpmy> а, вон чо
[17:13:29] <κpmy> сделай progress step number count number : next number )
[17:13:41] <κpmy> а такую неоднозначность ты не разрулишь конеш
[17:14:17] <κpmy> ну точнее разрулишь, пока не появится  переменная типа Функция
[17:14:48] <κpmy> ну либо договориться, как в ссышечке, вызов всегда со скобками параметров, костыль конеш
[17:15:46] <κpmy> когда читаю критику пщ от дебашера http://i.imgur.com/5oc9wnh.png
[17:18:09] <Deirz> лол
[17:19:03] <Deirz> вообще, командный синтаксис я хочу только для того, чтобы короткие oneliner'ы поддерживать
[17:19:17] <Deirz> склоняюсь к альтернативному синтаксису пока
[17:21:20] <Deirz> но это тоже так себе вариант - учить и использовать два типа синтаксиса для одного языка
[17:22:17] <κpmy> да и парсер усложнится из-за фигни
[17:37:46] <κpmy> Deirz: а ты на гитхаб не выкладываешь этот язычок
[17:37:54] <Deirz> пока нет
[17:37:55] <κpmy> ?
[17:38:33] <κpmy> а как же ссылки на говнокод? :)
[17:39:18] <Deirz> там сильно нихрена нет
[17:40:59] <κpmy> а ты же на окамле пишешь?
[17:41:38] <Deirz> сначала на окамле
[17:41:45] <Deirz> но потом переписал на го
[17:42:02] <κpmy> хыхы, не вошла функциональщина?
[17:42:16] <Deirz> сама функциональщина норм зашла
[17:43:04] <Deirz> без опыта тяжеловато, но в целом есть удобные фичи и инструменты для запиливания язычков
[17:43:40] <Deirz> я хотел потом сделать гошную и плюсовую версию из референсной каким-нибудь специализированным транслятором
[17:43:58] <Deirz> но это оказалось стократно сложнее
[17:47:42] <Deirz> го ещё не пробовал транслировать, но тут можно импортировать go/ast и половина проблемы будет решена
[17:48:38] <κpmy> я пробовал начать на scala парсер для своего язычка разметки, а потом не понял, как правильно в функциональной порнодигме выразить такой кейс, когда ты разобрал обязательный токен, а после него может быть запятая, и куча необязательных токенов через запятую, а в конце, если нет запятой, то опять обязательный токен
[17:48:57] <κpmy> что-то типа VAR i, j, k INTEGER
[17:49:10] <κpmy> но может быть и VAR i INTEGER
[17:49:37] <Deirz> должно матчингом решаться
[17:49:40] <κpmy> но точно не может быть VAR i или VAR i j INTEGER
[17:50:38] <Deirz> скалку не знаю
[17:50:40] <κpmy> непонятно, что матчить, ведь VAR уже ушло в прошлое, а запятая сама по себе не имеет однозначного применения
[17:51:02] <Deirz> после var обязательно заматчить токен
[17:51:07] <κpmy> то есть там где я делаю в императивном парсере просто вложенный цикл, в декларативном хз
[17:51:10] <Deirz> потом либо матч запятой либо идента
[17:51:45] <Deirz> если запятая - то рекурсивно заходим на себя и опять матчим либо запятую, либо идент
[17:54:21] <κpmy> мозг так не думает :)
[17:54:38] <κpmy> короче надо будет ещё один подход сделать
[17:54:48] <κpmy> как раз там появилась scala-native
[17:54:59] <κpmy> можно уйти от jvm
[18:12:11] begemot_sun вышел(а) из комнаты: Replaced by new connection
[18:12:14] begemot_sun вошёл(а) в комнату
[18:27:45] krab вошёл(а) в комнату
[19:43:12] plumbum вышел(а) из комнаты
[19:43:20] mks2 вошёл(а) в комнату
[19:52:07] debasher-9.6.2-nightly вошёл(а) в комнату
[20:22:42] avz вошёл(а) в комнату
[21:05:56] κpmy вышел(а) из комнаты
[21:07:18] valexey вошёл(а) в комнату
[21:08:09] valexey вышел(а) из комнаты
[21:30:44] azovcvb вошёл(а) в комнату
[21:46:26] krab вышел(а) из комнаты: Left Vacuum-IM
[22:12:02] mks2 вышел(а) из комнаты
[22:24:48] debasher-9.6.2-nightly вышел(а) из комнаты
[22:37:13] avz вышел(а) из комнаты
[22:59:40] krab вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!