Диёр
сиди себе учи своё любимое дело
Anatoly
мы по джва часа
У меня на работе есть чувак, тридцать минут собес
Shub
fsharp-mode in Emacs (Windows)
там еще автокомплит работает. ну для любителей, конечно
Shub
ну на лине думаю тоже запустится, возможно лишь придется прописать путь к fsi
не придется. придется только поправить exec-path, сегодня fsi запускается как тул
TOV_MULTIMASSO
У меня при слове "скидка" рука тянется к Report. Еле сдержался
Диёр
на выходных пробовал spacemacs
Диёр
не получилось
Диёр
шо пустой емакс, что готовые сборки не получается
Диёр
как понять у либы zerover или просто автор считает что она ещё не готова к проду?
Ayrat
если не ответит, значит второе
Диёр
это же придётся с программистами общаться
Диёр
гиблое дело
Диёр
ну ладно, всё равно спасибо
Ayrat
Тот кто придумал имплиситы должен сгореть в аду.
Ayrat
редкостная ебанина.
Ayrat
надо было идти в проститутки
Roman
Тот кто придумал имплиситы должен сгореть в аду.
нормальные пацаны используют эксплициты?
Λ ll И K X
да.
двачую дико
Ayrat
сука, шаг вправо-влево и нахуй отстрел ноги в рантайме
Roman
как они работают вообще? Помимо того, что неявно
Doge
как они работают вообще? Помимо того, что неявно
Ищутся наиболее подходящие(*) по областям видимости начиная с самой близкой в вызову.
Doge
(*) - наиболее подходящие по типам и названию (sic!) аргумента Исправлено в dotty, там название смысла не имеет
Roman
кек, название аргумента это пять
Ayrat
а сами они что из себя представляют? Типа тайпклассов?
кариррованые аргументы на самом деле
Ayrat
просто неявно подставляются
Doge
а сами они что из себя представляют? Типа тайпклассов?
Тупо аргумент, значение в которое автоматически подставляется, если найдено подходящее имплисит обьявление
Ayrat
типа у тебя функция такая ПСЕВДО ФШАРП let implicit bar = 1 let foo a b (implicit c) = a + b + c foo 1 2 // на самом деле будет foo 1 2 1
Roman
т.е. объявляешь функцию let myFunc a b = a + b а туда неявно прокидывается какая-то ебанина, которая в нем используется и подходит по типу?
Ayrat
при этом имплисит может лежать в нугете
Roman
АХАХАХАХАХА
Ayrat
и чтобы он подставлялся достаточно сделать open NameSpace
Ayrat
то есть открыл ты неймспейс а тебе в код лезут имплиситы
Roman
ну хотя бы имплисит виден в сигнатуре, да?
Roman
слабаки
Roman
надо было и из сигнатуры выкосить
Ayrat
ты явно должен сказать что вот этот аргумент МОЖЕТ неявно подставляться
Shub
надо было и из сигнатуры выкосить
так это глобалочка получится просто
Roman
дайте угадаю, их используют для DI, да?
Doge
ну хотя бы имплисит виден в сигнатуре, да?
Более того, то, что туда подставляется должно быть видно в области видимости
Ayrat
Roman
ты явно должен сказать что вот этот аргумент МОЖЕТ неявно подставляться
а если ни одного имплисита не объявлено, то что будет?
Ayrat
при этом никто тебе не подскажет где его искать (а он может быть)
Ayrat
какой-нибудь ебаный GenTraversableOnce[…]
Ayrat
И пиздуй его по стд либе ищи
Roman
Компайл тайм ошибка
а если объявлено несколько одинаково подходящих по типу, то как понять, который подставится?
Shub
по законам жанра там должен быть восьмидырочный хероид какой-то. иначе несчитово
Doge
Doge
Т.е. они в одной области видимости и у них одинаковый тип
Doge
И они оба одинаково подходят
Roman
ок, откуда тогда рантайм ошибки берутся?
Doge
ок, откуда тогда рантайм ошибки берутся?
Если ты как-то получил не тот имплисит, что ожидал. Например, сделал другой импорт, чем ожидал.
Ayrat
Ну вот смотришь ты на код и он выглядит обычно.
Ayrat
А внезапно
Ayrat
Но это еще лайтовый случай
Ayrat
Было
Doge
Было
Жуть как у вас код писали
Ayrat
Стало
Roman
А внезапно
в withBody объявлен имплисит параметр?
Диёр
Имплиситы в скале выглядят как заведомо плохая фича
Ayrat
Жуть как у вас код писали
Да, это уже нерабочая кодобаза
Ayrat
в withBody объявлен имплисит параметр?
Да. он требует чтобы прокидываемый T обладал BodyWritable
Ayrat
тайпклассы йопта
Ayrat
И короче, вот я щас ногу себе отстрелил по колено наверное