
Igor
27.04.2017
14:11:43
Почему все молчат?
@JetBrainsRider with F# support is out, grab it here
https://t.co/CWqLWCuC32
https://twitter.com/kot_2010/status/857591153935470593

Roman
27.04.2017
14:12:15

Igor
27.04.2017
14:13:12
Что бы не мучиться с закачки с разных урлов, советую поставить
https://www.jetbrains.com/toolbox/app/ , с ним просто обновляешь через кнопку
Новость: https://blog.jetbrains.com/dotnet/2017/04/27/rider-eap-21-f-support-bundled-tfs-plugin/
Сейчас посмотрим, какие там рефакторинги завезли ?

Google

Alexander
27.04.2017
14:21:05
Прочитал до конца и увидел что уже был правильный ответ)

Igor
27.04.2017
14:21:40

Vasily
27.04.2017
15:41:09
Кто помнит, как называется функция, разбивающая последовательность на две по фильтру?

Pavel
27.04.2017
15:41:35
mapPartition

Vasily
27.04.2017
15:51:19
List.partition

Pavel
27.04.2017
15:53:26
partition - если разу Choice идёт

Летучая
27.04.2017
17:25:04

Igor
27.04.2017
17:26:57

Летучая
27.04.2017
17:27:45
Там же если какой-то ссаный сервер со ссаным пакетиком протухнет, то ты проект не соберешь.
И будешь сидеть и побираться, потом в 3-ех местах хмл править, чтобы заработало.
В целом негативный опыт использования оного у меня

Google

Летучая
27.04.2017
17:28:43
Java+maven для школьников

Roman
27.04.2017
17:29:24

Igor
27.04.2017
17:29:51

Roman
27.04.2017
17:30:15
ок, какую альтернативу предлагает @Worldbeater ?)

Летучая
27.04.2017
17:31:32
градл
если из жабомира
с ним всё оч проще

Roman
27.04.2017
17:32:20
F# + Paket - вот правильный ответ)

Летучая
27.04.2017
17:32:28
Двачну
Прям оч хочется под UWP его

Friedrich
27.04.2017
17:36:26
На сон грядущий побеседовал с тов. Бурбаки в чате по F#.

Igor
27.04.2017
17:36:27
Как красиво сделать main argv + async { }?

Friedrich
27.04.2017
17:36:34
Такой забавный чувак, мне нравится его никнейм :)

Roman
27.04.2017
17:36:48

Friedrich
27.04.2017
17:36:53
В Slack.

Roman
27.04.2017
17:37:04

Friedrich
27.04.2017
17:37:10
Да он чото про code contracts заикался, и я решил ему немножко материалов скинуть.
Но оказалось, что он и без меня примерно всё то же самое знает :)

Igor
27.04.2017
17:37:41
поясните
Ну let main argv = async { не компилируется

Friedrich
27.04.2017
17:37:56
Потому что main должна вернуть int.

Google

Roman
27.04.2017
17:37:56

Igor
27.04.2017
17:38:09

Friedrich
27.04.2017
17:38:15
А так же, как в C#.

Roman
27.04.2017
17:38:35
async {} |> Async.RUnSync.. или async.Start в зависимости от того что нужно

Friedrich
27.04.2017
17:38:43
Там ты делаешь Task.Run(...).Wait(), а у нас типа async {} |> Async.RunSynchronously

Igor
27.04.2017
17:38:58
блин, не очень красиво, ну ок

Friedrich
27.04.2017
17:39:04
Что поделать!

Roman
27.04.2017
17:39:11

Igor
27.04.2017
17:39:40

Friedrich
27.04.2017
17:39:40
CLR сама по себе не поддерживает этой фичи, и вряд ли будет. Всё, что можно навернуть поверх, будет лишь небольшим слоем синтаксического сахарку.

Pavel
27.04.2017
18:23:59

Roman
27.04.2017
18:24:17

Pavel
27.04.2017
18:24:56
У нас почему-то все аспнет кор, и сайд прожект на упорке тоже клиент хочет аспнеткор с F#

Roman
27.04.2017
18:26:20
ковыряю Giraffe кстати.
удобный, для петпрожектов отличный)

Vasily
27.04.2017
18:27:03
Я сегодня прковырял один пакет,у меня травма теперь :(

Roman
27.04.2017
18:27:34
какая?

Vasily
27.04.2017
18:27:42
Психологическая

anton
27.04.2017
18:28:00

Roman
27.04.2017
18:28:07
ты про тот где встретил С# код? ))

Google

Vasily
27.04.2017
18:28:07
Угу
Кто-то не умеет в пакеты просто

Max
27.04.2017
18:49:43

Vasily
27.04.2017
18:50:56
Слишком многословен

Max
27.04.2017
18:52:01

Roman
27.04.2017
19:06:10
.net много чего дал миру) RX, async await, но если подумать то C# просто в резонансе доносил до других идеи которые выкриквал маленький F#)
что-то меня понесло))

Nikolay
27.04.2017
19:14:46
Щас под винформс делаю проект, надо было на F# писать :D
Чтобы хрен кто потом подправил

Летучая
27.04.2017
19:41:18
Писал джва года на C#, сейчас ковыряю F# (пока только в связке с WPF). После нескольких дней ковыряния, F кажется очень лаконичнее, понятнее и выразительнее. Если б была возможность пересесть с C# на F#, не задумываясь бы пересел. (а UWP так и не завезли)
Нет ну если ковырять C# после Java, первый конечно покажется гораздо удобнее и мощнее. Вроде и похожи языки сильно, а вроде в Java древний мир.

Vasily
27.04.2017
19:59:48
С мое попиши на c#...начнешь на стену лезть от многословности...

anton
27.04.2017
20:01:06

Vasily
27.04.2017
20:01:19
А я с 1.0
Года с 2002 примерно
Тогда я был молод и писать на c# было уделом хипстеров

Vlad
27.04.2017
20:02:36
А как на f# правильно с бд работать? Или писать репозитории/сервисы и не париться? А то я что-то функциональну не могу себе в голову пропихнуть

Vasily
27.04.2017
20:03:06
Ну я пробую тайп провайдеры сейчас, пока норм заходит

Vlad
27.04.2017
20:04:20
Да я тут с даппером и нет утром сижу

Vasily
27.04.2017
20:04:25
В целом работа с любым источником данных заключается в создании прослойки над ним

Google

Vlad
27.04.2017
20:04:29
Нет кор*

Vasily
27.04.2017
20:04:49
Ну даппер вполне себе маппер

Vlad
27.04.2017
20:05:17
Да я просто ловлю себя на том, что f# у меня c# без скобочек, эх

anton
27.04.2017
20:05:24
А я с 1.0
обманул тебя.
я когда начал, была версия 1.0 и буквально через полгода 1.1 релизнулась (декабрь 2002 я засел за дотнет) а 1.1 где-то по весне вместе со студией 2003 вышла

Vasily
27.04.2017
20:06:02
Ну понимание как писать приходит с опытом
Надо еще мыслить в других категориях
Про себя могу сказать, что f# сильно продвинул меня в написании поддерживаемого c# кода

Vlad
27.04.2017
20:08:11
Есть такое, меньше изменяемого состояния
Хоть и писал на c# полтора проекта

Roman
27.04.2017
20:09:38

Летучая
27.04.2017
20:28:59
)))

Vlad
27.04.2017
20:29:27
Ага


Friedrich
28.04.2017
01:20:41
Чуваки, а кто-нибудь знает, как правильно выразить static property constraint? Я сейчас попробовал вот так:
> let inline maxValue () = (^t : (static member MaxValue : ^t));;
stdin(4,61): error FS0010: Unexpected symbol ')' in binding
И вот так компилируется, но не работает:
> let inline maxValue () = (^t : (static member MaxValue : ^t) ());;
val inline maxValue :
unit -> ^t when ^t : (static member get_MaxValue : -> ^t)
> maxValue<int>();;
stdin(3,1): error FS0001: The type 'int' does not support the operator 'get_MaxValue'
@gsomix я знаю, что ты умеешь в эти штуки!
Мне начинает казаться, что на статические проперти вообще нельзя констрейнт :(
А, лол, MaxValue это не свойство, а константа :(
А вот как реализовано в FsControl, очень интересно: https://github.com/gusty/FsControl/blob/7c26f64e4519f17f276698e02973ddb4db4919dc/FsControl.Core/Numeric.fs#L444-L466
Особенно меня заинтересовала вот эта вот фишечка let inline call_2 (a:^a, b:^b) = ((^a or ^b) : (static member MinValue: _*_ -> _) b, a)
Я даже не знал, что так можно писать — (^a or ^b) : .... Поразительно.


Vlad
28.04.2017
04:43:16