Astmatik
23.09.2017
17:33:08
"ошибка типизации" в js тоже ловится try ... catch
Pawel
23.09.2017
17:37:50
если ты не в курсе, линтинг и автодополнение в js выглядит примерно так:
https://hsto.org/files/6bf/247/c82/6bf247c82ec54970b2c5625c784da4ba.png
Сколь-нибудь сложный статический анализ невозможен. Вот и анализируют, что могут — расположение пробелов, фигурных скобочек и прочие декоративные штуки.
Теоретически можно про всё помнить, всё покрывать тестами, проверять тип в каждом выражении - закатать солнце руками тоже можно.
А вот try catch не прокатывает, иначе перформанс мгновенно упадёт до 0 fps ?
Evgeniy
23.09.2017
17:43:56
Как-то мы незаметно в обсуждение JS скатились. ?
Roman
23.09.2017
17:45:44
В чатике про F#
Google
tiga
23.09.2017
17:49:57
Привет. А был у кого-нибудь опыт писать на f# под unity3d? Хотел узнать про подводные камни.
Pawel
23.09.2017
17:53:43
tiga
23.09.2017
17:57:51
Astmatik
23.09.2017
19:06:08
Pawel
23.09.2017
20:13:25
node-js дестабилизирует эмоциональный фон)) http://tonsky.livejournal.com/266519.html
Xak
23.09.2017
20:25:12
боже мой
какой текст
какой типаж
утащил, спасибо
Artemy
23.09.2017
20:26:59
Какое-то странное ощущение после прочтения...
Pawel
23.09.2017
20:27:16
мне тоже нра.
Кстати, есть мощная идея на счёт node js
Astmatik
23.09.2017
20:29:20
Мне кажется это скорее про руби, а не про ноду )
Google
Pawel
23.09.2017
20:30:09
сделать форк SAFE , в котором вместо suave будет нода-жс express на fable - NAFE, или EAFE. Вот это мне кажется порвёт все шаблоны!
kana
23.09.2017
20:31:12
"Иногда бывает быстрее перезапустить сервер чем дождаться окончания сборки мусора" как же я ору, такое реально люди на джаве практикуют
Xak
23.09.2017
20:31:24
я прямо ощутил примерно то же самое, когда читал в нетленном тексте про корованы идею LOD и замен спрайтами очень далёких моделей
Алекс
24.09.2017
07:01:58
Pawel
24.09.2017
07:58:08
Алекс
24.09.2017
07:58:54
Nikolay
24.09.2017
08:14:53
Pavel
24.09.2017
08:17:02
https://twitter.com/FSharpData/status/911636435962355712
Vlad
24.09.2017
08:26:38
Андрій
24.09.2017
10:06:27
Интересная идея
http://fable.io/fableconf/#speakers/maxime
https://github.com/MangelMaxime/Hink
Pawel
24.09.2017
14:01:04
Evgeniy
24.09.2017
15:12:03
Посмотрите, о чем твитнул(а) @realvictorprm: https://twitter.com/realvictorprm/status/911966251752329217?s=09
Artemy
24.09.2017
15:13:18
Просто автоматическое добавление коммента? Или это какая-то чисто визуальная штука?
Evgeniy
24.09.2017
15:19:18
Как в vscode.
Artemy
24.09.2017
15:19:51
Тогда классно :)
Igor
24.09.2017
15:25:16
Это эксперимент или готовят фичу в ionide?
Google
Artemy
24.09.2017
15:25:33
Это ж в VS
В Ionide уже такое есть (через Code-Lens)
Igor
24.09.2017
15:27:08
Жалко.
В ionide этого кстати нет для лок. переменных.
Artemy
24.09.2017
15:28:06
А, ну м.б.
Igor
24.09.2017
15:28:29
Иногда смотришь на длинную чепочку |> и не понятно, а какой же там тип в середине
Artemy
24.09.2017
15:28:48
Вот только хотел написать про это
Самый полезный сценарий такой штуки — показывать тип значения для каждого шага |>
Вообще, в VS 2017 уже с этим получше
Evgeniy
24.09.2017
15:30:16
Artemy
24.09.2017
15:30:19
Во всплывающих подсказках для обобщённых типов покаызвается, какой конкретный тип подставляется вместо 'T, 'K и т.п. Я уже кидал сюда скрин как-то.
Friedrich
24.09.2017
16:05:45
Может, надо какой-то дополнительный признак вводить.
Evgeniy
24.09.2017
16:06:01
Friedrich
24.09.2017
16:06:06
Ну, чтоб не всё подряд, а только нужное.
Evgeniy
24.09.2017
16:06:09
Включил, посмотрел на пайп, выключил.
Friedrich
24.09.2017
16:06:14
Скажем, только функции, или только сигнатуры определённой длины.
Igor
24.09.2017
16:06:30
Friedrich
24.09.2017
16:06:42
Всё равно же весь код будет в аннотациях. Много шума.
Google
Igor
24.09.2017
16:07:40
Можно ограничить только для pipe, где не очевидны типы.
Короче кому-то надо это обдумать.
Artemy
24.09.2017
16:08:22
Как вариант, только для многострочных |>
Если в одной строке несколько |>, то показывается тип последнего.
Evgeniy
24.09.2017
17:11:24
Вот тут обсуждение.
https://github.com/ionide/ionide-vscode-fsharp/issues/426
@artemy_b @angmarr
DSL для докера.
https://github.com/ninjarobot/FSharp.Text.Docker
F# Weekly #38 - be on the SAFE Stack today!
https://sergeytihon.com/2017/09/24/f-weekly-38-be-on-the-safe-stack-today/
Artemy
24.09.2017
17:20:50
Интересно, можно ли сделать автоматический репост F# Weekly сюда в Телеграм?)
Evgeniy
24.09.2017
17:21:34
Artemy
24.09.2017
17:22:49
@gsomix хмм...?
Admin
Artemy
24.09.2017
17:23:08
Ну так-то да
Но автоматом была бы прямо мгновенная доставка, свежее некуда.
Igor
24.09.2017
17:29:47
Да ладно, там и так недельная задержек на викли.
Gsomix и так самое свежее на прямую из твиттера репостит
Andrew
24.09.2017
21:07:05
Вопрос про Discriminated Union. Что вот это за методы/свойства - IsTheA, IsTheB, как к ним обратиться? На скриншоте просто результат вывода значения DU в LinqPad. Есть ли реально такие свойства или же это просто визуализация LinqPad?
Evgeniy
24.09.2017
21:15:36
Andrew
24.09.2017
21:19:27
Интересно. Похоже даже из F# можно обращаться. Код, использующий эти свойства подчеркивается как ошибка, но компилируется. Думаю все дело в аттрибутах DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode. Зачем они?..
Evgeniy
24.09.2017
21:21:01
Andrew
24.09.2017
21:23:30
А так понимаю причина того, что интерпретатор не знает об этих свойствах кроется в этих аттрибутах. И странно, что их скрыли. По сути в своем коде я пишу аналогичные функции.
Google
Evgeniy
24.09.2017
21:26:59
Andrew Висит, что одобрено.
https://github.com/fsharp/fslang-suggestions/issues/222
Andrew
24.09.2017
21:32:56
Это радует. Ибо удобно
а то приходится писать так:
let (|IsElement|IsEmptyElement|IsText|IsEndElement|) = function
| Element _ -> IsElement
| EmptyElement _ -> IsEmptyElement
| Text _ -> IsText
| EndElement _ -> IsEndElement
или такое:
let isElement = function Element _ -> true | _ -> false
let isEmptyElement = function EmptyElement _ -> true | _ -> false
let isText = function Text _ -> true | _ -> false
let isEndElement = function EndElement _ -> true | _ -> false
Pawel
25.09.2017
04:50:23
объясните мне дураку за каким хрпеном в SortedList - Add(Key, Value), но при этом RemoveAt(Index). https://msdn.microsoft.com/en-us/library/system.collections.sortedlist(v=vs.110).aspx
Evgeniy
25.09.2017
05:00:26
Pawel
25.09.2017
05:33:30
я имел ввиду - на хрен нужно by key и by index в одном флаконе. И ещё там смешная документация к Add(Key, Value):
This method is an O(n) operation for unsorted data, where n is Count.
Я затрудняюсь понять что такое здесь "unsorted data".
Aleksander
25.09.2017
06:08:39
Pawel
25.09.2017
06:49:19
документацию я читал, да. Теперь пытаюсь найти в ней смысл. Чтобы задавать вопросы по SortedList соискателям и не выглядеть идиотом.
Friedrich
25.09.2017
06:54:15
Aleksander
25.09.2017
07:02:36
Pawel
25.09.2017
07:19:46
"А зачем спрашивать" - у нас в колективе дискуссия по этому поводу. Я сторонник того, что sortedlist придумали дураки для дураков. Пытаюсь найти разумные аргументы против этого тезиса, пока не нашёл.
Astmatik
25.09.2017
07:34:31
Наверное есть кейсы, когда просто удалить элемент по индексу проще.
Evgeniy
25.09.2017
09:09:14
Fill
25.09.2017
09:09:43
Я инвестигировал этот вопрос. Фишка сортедЛист в том, что это по сути список, массив и хэштейбл(почти) в одном флаконе. Операции поиска по чему угодно - не больше O(log n) (в этом вся соль).
Но за это платим долгой инициализацией/добавлением/удалением
т.е. эту структуру данных следует использовать тогда, когда нам надо один раз инициализировать гору данных, а потом постоянно искать по ней
в принципе это всё, что должен знать соискатель
А насчет вопроса, зачем byKey и byIndex - они имеют разный смысл. Кей - ключ, с которым ассоциируется значение. Индекс - порядковый номер в лиссте
Диджитал
25.09.2017
09:28:03
спашивать хорошо бы то, что на практике использовал
Fill
25.09.2017
09:30:03
Вообще, в моей практике такой кейс был несколько раз. В результате, сортед лист оптимизировал мне некоторые вещи. Без него бы я либо искал бы предыдущиий/следующий за Оn либо бай кей за Оn. а это говно
Диджитал
25.09.2017
09:33:05
ну вот ты и спрашивай ) а не топикстартер