
Vasily
30.03.2017
09:33:46
И бкз nullreference, pls

Nikolay
30.03.2017
09:34:24
В Go NRE может же быть
https://bugzilla.xamarin.com/show_bug.cgi?id=37273

Google

Nikolay
30.03.2017
19:04:33
let printUpdate = Option.bind (fun x -> printfn "%A" x.Text)
В чём косяк?
Ругается на "%A" x.Text
Type mismatch. Expecting a
'a -> 'b option
but given a
'a -> unit
The type ''a option' does not match the type 'unit'

Vasily
30.03.2017
19:07:14
Логично

Roman
30.03.2017
19:08:04
блин, вот и пиши после этого не в студии

Nikolay
30.03.2017
19:17:09
Да, это работает

Roman
30.03.2017
19:17:36
Можно красивее. Но без студии не вспомню)

Igor
30.03.2017
19:49:57
Немного расплывчатый вопрос, но скажите хоть куда смотреть:
А можно в F# передавать в функции неявные (implicit) параметры или как-то говорить что она исполняется в каком-то контексте?

Roman
30.03.2017
19:51:04
Кстати звонки в телеграмме врубили.

Arseniy
30.03.2017
19:51:44

Igor
30.03.2017
19:52:18
Ну типа implicit в Scala или this в extension-lambda в Kotlin (говорит о чем-то?)

Google

Roman
30.03.2017
19:52:34
let implicit func a = a+a
По моему валидно

Igor
30.03.2017
19:53:30
Вот чувак задает похожий вопрос https://fslang.uservoice.com/forums/245727-f-language/suggestions/5810569-add-support-for-implicit-parameters

Roman
30.03.2017
19:54:08

Igor
30.03.2017
19:55:19

Roman
30.03.2017
19:55:29
точно
а нет

Igor
30.03.2017
19:56:04
Вопрос вроде поднимали уже, но напомните как в F# живут без type class?

Roman
30.03.2017
19:56:04
тут проскальзывало уже. Пиво выиграл кто-то)
легко)

Igor
30.03.2017
19:56:50
легко)
Это понятно, в Java и С# тоже не жалуются.
Но интересно как эмулируют, если очень хочется?

Roman
30.03.2017
19:57:38
let inline (»=) a = a + a;;
val inline ( »= ) :
a: ^a -> ^b when ^a : (static member ( + ) : ^a * ^a -> ^b) так не подходит?
Есть некий https://github.com/gusty/FSharpPlus
но он не добавляет type classes
http://cloudsharper.com давно ребята пишутся

Igor
30.03.2017
20:14:27

Evgeniy
30.03.2017
20:15:03
@angmarr А что ты хочешь сделать?

Google

Evgeniy
30.03.2017
20:16:17
Полноценных тайпклассов не получить, но часть задач, где нужен просто ad hoc полиморфизм, можно решить через inline/SRTP.
Ну, как это делают в FSharpPlus.

Roman
30.03.2017
20:16:51

Evgeniy
30.03.2017
20:17:12
Statically Resolved Type Parameters
https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/generics/statically-resolved-type-parameters

Roman
30.03.2017
20:17:26
Secure Real-time Transport Protocol

Evgeniy
30.03.2017
20:17:38
:)

Roman
30.03.2017
20:18:01
т.е. можно много чего сделать, правда

Evgeniy
30.03.2017
20:19:02
@angmarr @neftedollar
Вот пост чувака, который FSharpPlus пилит.
http://nut-cracker.azurewebsites.net/blog/2011/11/15/typeclasses-for-fsharp/
Может будет полезно.

Roman
30.03.2017
20:20:49

Nikolay
30.03.2017
20:30:33
А в F# код не раскидывается по папкам?

Igor
30.03.2017
20:38:20
@angmarr А что ты хочешь сделать?
Я хочу писать функции, которые исполняются в каком-то контексте (окружение).
Сейчас контекст приходится явно передавать из функции в функцию, через параметр.
Вот М.Одерский (автор Scala) говорит о похожей проблеме в компиляторе - https://youtu.be/iobC5yGRWoo?t=36m3s
У него Context передается как параметр в 2641 функцию.
У меня кода меньше, но повторение (/копипаста/бойлерплейт) надоело ?

Evgeniy
30.03.2017
20:40:33
@angmarr Ну, тогда классы и методы.

Igor
30.03.2017
20:42:00

Evgeniy
30.03.2017
20:42:27
@angmarr Классы -- это вполне идиоматичный F#.
Пожалуй, я даже продублирую ту ссылку в очередной раз.
https://eiriktsarpalis.wordpress.com/2017/03/20/why-oo-matters-in-f/

Roman
30.03.2017
20:43:01

Google

Nikolay
30.03.2017
20:43:38
Странно, не вижу в VS Add Folder

Evgeniy
30.03.2017
20:44:40
@angmarr Ну, и тебе нужен будет не один класс Context, а набор классов, параметризуемых контекстом.

Igor
30.03.2017
20:45:01

Arseniy
30.03.2017
20:45:09

Igor
30.03.2017
20:47:45

Arseniy
30.03.2017
20:49:35
как что меняет, если он не изменяем, то грубо говоря, можно было эти ф-ции сделать замыканиеми
или завернуть в какую-нибудь ридер-монаду
или как правильно пишут, можно сделать класс и в него нафигачить методов
может каконечно у меня блаб парадокс головного мозга, но такие проблемы надо решать реорганизацией кода, а не имплиситами

Igor
30.03.2017
20:53:56

Arseniy
30.03.2017
20:55:19
с точки зрения системы типов F# ничего сильно интересного не может. тот же окалм мощнее. фишарп - это типо просто и практично

Igor
30.03.2017
20:56:01


Arseniy
30.03.2017
20:57:55
Грэм является автором так называемого «Парадокса Блаба» («Blub paradox»), ссылки на который нередко встречаются на тематических ресурсах, посвящённых обсуждению новых и ограниченно популярных языков и механизмов программирования. «Парадокс Блаба» описан в очерке «Побеждая посредственность». Его сущность состоит в том, что программист, знающий некоторый язык («Блаб»), «думает на Блабе» — выражает решение любой задачи в средствах Блаба, а имеющиеся в более мощном языке дополнительные средства в его глазах ничего не стоят, так как он не умеет их применять. Только когда программист по каким-то внешним, дополнительным причинам изучит более мощный язык, он получит возможность смотреть на Блаб «сверху вниз» и увидит его ограниченность. Таким образом, ограниченность Блаба сама по себе не может стать стимулом для изучения более мощного языка, так как для осознания этой ограниченности необходимо уже знать такой язык. Этим Грэм объясняет то, что программисты обычно не желают изучать более эффективные инструменты программирования, чем те, которыми они уже владеют (в частности, непопулярность Лиспа).
один из популярных аргументов, когда не выходит доказать позеность килерфичей скалы всяким гофферам)


Roman
30.03.2017
21:05:45

Arseniy
30.03.2017
21:13:34
лел. мысли синхронны https://twitter.com/backendsecret/status/847557264802185217

Roman
31.03.2017
01:24:36
У нас в EPAM в СПб бывают проекты на F#.
Я могу у коллеги узнать. Знаю только, что для международной фарма компании.
Целенаправленно не набираем с F#. Ребята, которые писали на F#, были web full-stack с опытом на F#. А тут проект такой зашёл, где было актуально.

Evgeniy
31.03.2017
04:53:13
@Dolfik Какую версию VS используешь?

Google

Evgeniy
31.03.2017
04:57:45
@Dolfik https://github.com/Microsoft/visualfsharp/pull/2692
В 2017 над этим еще работают.

Nikolay
31.03.2017
05:16:01

Evgeniy
31.03.2017
05:16:52
@Dolfik VF# Power Tools установлен?

Nikolay
31.03.2017
05:18:24
Вообще вроде устанавливал, но чёт не появилось добавление папок, хотя могу ошибаться, надо ещё раз посмотреть
Для 2017 я так понял пока вообще нет возможности создавать папки, ибо эти тулзы только в 2015 работают

Evgeniy
31.03.2017
05:41:45
@Dolfik В 2017 все сложно. Там переезжают на roslyn-project-system.
Но со временем поддержка F# там будет лучше, чем в 2015+VFPowerTools.
F# сообщество опять штормит в твиттере. :)

Vasily
31.03.2017
07:43:51
Чо там?

Evgeniy
31.03.2017
08:10:26
Непонимание сути OSS как обычно. :)

Vasily
31.03.2017
08:10:52
Бывает,чо

Arseniy
31.03.2017
08:37:20
@gsomix линки на штормящее сообщеество

Evgeniy
31.03.2017
10:17:47
https://twitter.com/alfonsogcnunez/status/847405212755124224
Интересно, почему F# Foundation в GSoC не участвуют?
Надо в слаке спросить как-нибудь.
Окей. У FSF есть планы по участию в GSoC.