Я прошу прощения, но дочитал до этого места становится сложно не видеть обилия Шаталов а комментариях. Шатлы изначально потрясный продукт, но шатлы это же шатлы, а шатлы шатлы шатл шатлы? Шатлы! Шатлы шатл. Шатл!
ну очень обобщенно
вот что такое обобщенное программирование REPL
Microsoft (R) F# Interactive version 10.2.3 for F# 4.5
> let inline add a b = a + b;;
val inline add :
a: ^a -> b: ^b -> ^c
when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
> add 2 3;;
val it : int = 5
> add System.Numerics.BigInteger.One System.Numerics.BigInteger.MinusOne;;
val it : System.Numerics.BigInteger = 0 {IsEven = true;
IsOne = false;
IsPowerOfTwo = false;
IsZero = true;
Sign = 0;}
> add "wat!!!?" "man";;
val it : string = "wat!!!?man"
Не знаю какие у них там правила пользования в Америке, но если самокат можно бросать где угодно на улице, то это удобней своего: не нужно с ним таскаться в общественном транспорте, не нужно думать где его приткнуть в офисе/магазине.
Насколько я понял задачу, есть некий супервизор которому и делегируется счет, и все потоки с ним взаимодействуют, он может отправлять текущее значение счетчика всем воркерам если это надо.
Акка гораздо больше требует внимания, она шире по возможностям, но и сложнее и более низкоуровневая.
Орлианс довольно прост, многое делает за кулисами сам, но уже по возможностям чем акка, хотя основные юзкейсы покрывает.
Контрпример — вполне себе пример глубокого проникновения ФП в "программирование железа". Да, это не читсяй ФП язык, но уж ФП там побольше чем во многих мейнстримовых языках.
Кроме комментария kagetoki, который безусловно логично оспаривает ваш кейс, хотелось бы понять как вы с большим набором полей будете поддерживать логику логических состояний (да еще и тесты писать)?
Например, если у вас 5 опциональных полей, но некоторые связаны особой логикой (если заполнено это, то должно быть заполнно и то и это)
то разве не напишите вы тонну кода или фабрик? Не будт ли и у вас тут комбинаторный взрыв?
Ну и тесты, ими надо покрыть каждый кейс, а тут за вас «тесты» пишет и прогоняет компилятор.
Полезная статья, один из больших бонусов F# именно в возможности сделать ненужные состояния невозможными, и проверить это на этапе компиляции.
Спасибо!
Я прошу прощения, но дочитал до этого места становится сложно не видеть обилия Шаталов а комментариях. Шатлы изначально потрясный продукт, но шатлы это же шатлы, а шатлы шатлы шатл шатлы? Шатлы! Шатлы шатл. Шатл!
Fable выглядит гораздо приятнее
ну очень обобщенно
вот что такое обобщенное программирование
REPL
Microsoft (R) F# Interactive version 10.2.3 for F# 4.5
> let inline add a b = a + b;;
val inline add :
a: ^a -> b: ^b -> ^c
when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
> add 2 3;;
val it : int = 5
> add System.Numerics.BigInteger.One System.Numerics.BigInteger.MinusOne;;
val it : System.Numerics.BigInteger = 0 {IsEven = true;
IsOne = false;
IsPowerOfTwo = false;
IsZero = true;
Sign = 0;}
> add "wat!!!?" "man";;
val it : string = "wat!!!?man"
Спасибо!
Вопрос. От не знакомого с FORTH: а SHOW на пустом стеке в FORTH, тоже вернёт исключение?
Огромное спасибо переводчику
Полезнейших инициатива
Полезная статья.
Всегда когда хочу найти нужную ф-цию ищу её по сигнатуре. Не проходите мимо.
Уже опубликовали в Hackage?
Потрясно)
Теперь можно кидать ссылку на статью для новичков
Спасибо! Все по
Акка гораздо больше требует внимания, она шире по возможностям, но и сложнее и более низкоуровневая.
Орлианс довольно прост, многое делает за кулисами сам, но уже по возможностям чем акка, хотя основные юзкейсы покрывает.
Контрпример — вполне себе пример глубокого проникновения ФП в "программирование железа". Да, это не читсяй ФП язык, но уж ФП там побольше чем во многих мейнстримовых языках.
Например, если у вас 5 опциональных полей, но некоторые связаны особой логикой (если заполнено это, то должно быть заполнно и то и это)
то разве не напишите вы тонну кода или фабрик? Не будт ли и у вас тут комбинаторный взрыв?
Ну и тесты, ими надо покрыть каждый кейс, а тут за вас «тесты» пишет и прогоняет компилятор.
Спасибо!