@proelixir

Страница 521 из 1045
Roman
11.04.2017
19:52:56
причем let c = a/b // 0.75<meters/times>

Ilnur
11.04.2017
19:53:28
let a = 3<meters> let b = 4<times> a + b //Не компилится a + 1 //4
js же оверлоадинг операторов не поддерживает

Roman
11.04.2017
19:53:40
это не оверлоадинг

Dmitry
11.04.2017
19:55:56
Только что залез в код рабочего проекта на элике. Угадайте, сколько операторов я нашёл? Угадайте, сколько переменных я нашёл? И угадайте, сколько тестов я нашёл )))

Google
Dmitry
11.04.2017
19:57:22
Я просто к тому, что можно пилить простыню let, и там может быть типы что-то решают

Roman
11.04.2017
19:57:59
Я просто к тому, что можно пилить простыню let, и там может быть типы что-то решают
вывод типо делает записи короткими, F# один из самых компактных языков. Так что с простыней ты промахнулся.

Dmitry
11.04.2017
19:58:04
Но если мне вдруг понадобиться, я могу использовать тюплы, определить пару методов

Roman
11.04.2017
19:58:32
И херачить туда все что угодно. Бассейны да трубы похуй

Alexander
11.04.2017
19:58:45
На самом деле если бы к машине эрланга да типы хаскеля, да еще макросы ракета

Вот был бы не язык а мечта.

Roman
11.04.2017
19:59:26
э… ок. F#?)
https://fsharpforfunandprofit.com/posts/units-of-measure/

Dmitry
11.04.2017
19:59:43
Вот был бы не язык а мечта.
Слава богу что нету такого

Никакого бы let it crash не было, хот релоада

Alexander
11.04.2017
20:00:09
Ну эликсир это машина эрланга с макросами лиспа

Dmitry
11.04.2017
20:00:27
Отп вообще бы не работало

Google
Alexander
11.04.2017
20:00:39
А вот что касается релоада, я не понимаю. Почему? Как типы мешают горячей перезагрузке?

Dmitry
11.04.2017
20:01:21
Сигнатура метода к примеру поменялась

Alexander
11.04.2017
20:01:36
Так и версия модуля уже другая. Добавить версию в тип

Dmitry
11.04.2017
20:01:46
В тип чего?

Alexander
11.04.2017
20:01:54
Есть тип модуля А, есть тип модуля B, и в модуле B есть метод code_change :: A -> B

модуля.

Dmitry
11.04.2017
20:01:57
Типы бывают у данных, в не у модулей

Alexander
11.04.2017
20:02:06
модуль — тоже данные

смотри

представь себе запись, record, у которой поля — функции или данные

Roman
11.04.2017
20:02:23
Никакого бы let it crash не было, хот релоада
сижу тут с нового года и все радуются хотрелоаду но постоянно вижу вопрос " а кто-нибудь уже юзал?" Хотрелоад не такая уж и киллерфича

Alexander
11.04.2017
20:02:25
у каждой функции есть тип, у каждого поля данных есть тип

и у записи тоже есть тип, соот-но.

и это модуль. Чем не модуль?

Roman
11.04.2017
20:02:38
Никакого бы let it crash не было, хот релоада
а акторы даже в жабе быстрее

Alexander
11.04.2017
20:03:01
представь себе запись, record, у которой поля — функции или данные
в хаскеле это довольно популярный паттерн

Dmitry
11.04.2017
20:03:01
а акторы даже в жабе быстрее
Только их никто писать не может, из-за типизации

Alexander
11.04.2017
20:03:22
ну так это же задача, а не проблема

Alexander
11.04.2017
20:03:29
задача: запилить язык мечты

Google
Dmitry
11.04.2017
20:03:31
И у мэилбокса есть тип?

И он изменился в тот момент когда там были Пендинг данные?

Roman
11.04.2017
20:04:00
Только их никто писать не может, из-за типизации
Да дохуя же приложений. тем более что там как раз бестиповые сообщения преедаются или опциолнально включаются типы сообщения или выключаются.

Alexander
11.04.2017
20:04:21
И у мэилбокса есть тип?
не обязательно. Т.е. это может быть catch-all тип, с конструктором на каждый вариант данных которые туда могут прийти

union type, кажется они так называются. Такой огромный жирный union type

кстати, мессенджер wire открыл кода немного, и он на хаскеле

Dmitry
11.04.2017
20:05:04
не обязательно. Т.е. это может быть catch-all тип, с конструктором на каждый вариант данных которые туда могут прийти
И зачем тогда типизация если на выходе получается жирный тип? Как any в go? Супертема

Roman
11.04.2017
20:05:14
каждый раз сервер перезапускать после изменений неудобно
если ты не на сях компиляешь под конкретный серевер с изменениями в ядр линя, то тебе нчиего перезапускать не надо)

Alexander
11.04.2017
20:05:20
не поминай go :)

И зачем тогда типизация если на выходе получается жирный тип? Как any в go? Супертема
если задача — ловить ошибки типов в мейлбоксе, то значит не нужен такой union type, нужен небольшой и нежирный

Roman
11.04.2017
20:05:53
каждый раз сервер перезапускать после изменений неудобно
Да и павда, CI давно уже есть у нас никто не замечает что мы новую версию выкатили.

Alexander
11.04.2017
20:06:30
data Mailbox = Username String | Age Int

Alexander
11.04.2017
20:06:50
вот тебе простой юнион для мейлбокса, который принимает не всё, но больше чем один тип

Dmitry
11.04.2017
20:06:54
Киллерфича эрланга - ты можешь наговнякать код, работающий в идеальном случае, написать что делать когда упадёт, запустить и забыть

Dmitry
11.04.2017
20:07:47
И есть даже Варик запатчить прямо в продакшне

Roman
11.04.2017
20:08:18
Киллерфича эрланга - ты можешь наговнякать код, работающий в идеальном случае, написать что делать когда упадёт, запустить и забыть
Есть такое понятие, корректно работающие программы. Let it crash не отменяет того что erlang позволяет писать корректно работающие прогарммы, а этот твой подход наговнякал и забыл это не let it crash это херня какая-то

Alexander
11.04.2017
20:08:22
я вот склоняюсь к тому, чтобы свою мелочь писать на эликсире с пурескриптом. Счастье с двух сторон: и типы круче чем у хаскеля (ну почти), и вечно-работающая машина с девятью девятками надёжности

Dmitry
11.04.2017
20:09:02
Если ты пишешь как Анатолий Вассерман тебе вообще типы не нужны, потому что ты не можешь передать то что не надо куда не надо

Alexander
11.04.2017
20:09:31
Вассерман может всё, не надо тут

Google
Dmitry
11.04.2017
20:09:32
В если ты человек, то как бы ты типы не описывал у тебя в конце концов упадёт

Alexander
11.04.2017
20:09:45
(кстати, глава про монады в purescript by example даёт лучшее понимание, из всего милльона туториалов которыми засран весь интернет)

Dmitry
11.04.2017
20:10:21
И вопрос в том НУЖНО ли тратить время на это, если у тебя будет работать 99% времени а не 95%

Alexander
11.04.2017
20:10:38
99.9999999%

Dmitry
11.04.2017
20:10:59
С учётом того что супервизору пофиг, как часто у тебя падает - раз пол секунды или раз в пол года

Alexander
11.04.2017
20:11:38
BEAM — VM мечты. Если надо чтоб работало вечно — надо писать для неё. Если надо, чтобы работало корректно — то на хаскеле.

Dmitry
11.04.2017
20:12:07
И это решает огромный круг бизнес задач, связанных в основном с IO, которые в хаскеле превращаются в олимпиаду по математике

Alexander
11.04.2017
20:12:49
ну… это же не может быть каким-то аргументом против хаскеля? олимпиада, это разве плохо?

Admin
ERROR: S client not available

Alexander
11.04.2017
20:13:07
и нет, IO в хаскеле не сложно. Непривычно, но просто.

Dmitry
11.04.2017
20:13:42
Самое простое ИО "я хочу получить это, если не получил - падаем"

Alexander
11.04.2017
20:14:14
ну это понятный шаблон программирования, идеальный для beam. В хаскеле ты захочешь другого

Dmitry
11.04.2017
20:14:51
Если падаем все время и задолбало, добавляем строчку "если получил не то, а это - делаем так, иначе падаем"

И так до полного удовлетворения

Alexander
11.04.2017
20:15:05
в хаскеле ты захочешь связать серию функций типа a -> m b в длинную цепочку a -> m c, и будешь это использовать вместо обработки ошибок, к которой привык в других языках

это вопрос привычек, которые диктуются языком

Dmitry
11.04.2017
20:15:22
На выходе получаем минимальное время и максимальное бабло

Google
Alexander
11.04.2017
20:15:37
ну… честно говоря

за бабло я вообще перлом занимаюсь

так что…

Dmitry
11.04.2017
20:16:52
Мне кажется что чуваки рассуждающие в стиле "любой дебил мне передаст" - очень недалеки в промышленном программировании
Ну. ... вот это я сказал в самом начале диалога. Как я понимаю - дальше можно не говорить) хотите олимпиады - вперед. Только не путайте мух и котлет

Alexander
11.04.2017
20:18:17
Если для языка требуется программист с высшим математическим образованием, это не делает язык непригодным для промышленного использования

И я не понимаю агрессию

Dmitry
11.04.2017
20:20:54
Можно ли делать толчки из золота? Без сомнения. Я слышал в доме владельца Фейсбука есть такой

Roman
11.04.2017
20:21:53
да куча проектов иначе бы про язык ты бы даже и не услышал. А про крупные работющие приложения на elixir я так и не услшыл.

Dmitry
11.04.2017
20:21:54
Если для материала требуется не сантехник а ювелир, делает ли это материал непригодным для промышленного использования?

Alexander
11.04.2017
20:23:24
Агрессия, как будто я в метро в час пик

Roman
11.04.2017
20:24:03
let printerAgent = MailboxProcessor.Start(fun inbox-> // the message processing function let rec messageLoop() = async{ // read a message let! msg = inbox.Receive() // process a message printfn "message is: %A" msg // loop to top return! messageLoop() } // start the loop messageLoop() ) не туказаний типов, но если бует ошибка ты узнаешь о ней даже без написания тестов

Alexander
11.04.2017
20:24:06
Есть два приятных к использованию подхода, эликсир является представителем одного, второй не хуже а другой

Dmitry
11.04.2017
20:26:36
Агрессия, как будто я в метро в час пик
Я конечно немного передёргиваю, но в общем ограничимся тем, что я считаю хаскеле не промышленным языком

Roman
12.04.2017
00:02:02
фишарп! <3
https://t.me/Fsharp_chat

Alexander
12.04.2017
00:36:38
что-то странные новости из авиасала, то там всех увольняют к черту, то рабов ищут за 2к usd

Страница 521 из 1045