
Vasily
14.05.2018
13:45:48
шарплаб не умеет в INotifyPropertyChanged...

Friedrich
14.05.2018
13:46:11
Ну ты б хоть как-то
Хоть не на шарплабе.

Vasily
14.05.2018
13:50:35
https://sharplab.io/#v2:DYLgZgzgNAJiDUAfA9gBwKYDsAEBlAnhAC7oC2AsAFBpZ6EmkB0AwsqasplkQLLIzpgVIvgzZmACgCU2ALxVsi7AEtMJAE5gAhgGN02AJIA5ZEWVh8ABXU11I5gAstmAOboY2AO7KiDhUoBtAB5mABkDAFEAN24APgBdf0VSMgAjdHVsAA9Ga1t7J1d3OWx0KNyAV1TgZQg/SiVsJOwU0nTM1BsSHRIPHJMzC2xUWRy8jDt8R2c3GEYAFXVlFzd1CSyoLk9scYyCmfdo7gBBdRcICVQpBWFRfQARaXkGlUwHDJ9xaRvKETEIiRgZSCGAQED3bAQdAARykz0UqneSyIX2uL2A6BRUKIA3M+GGcmaLS0RB0DmGuRsExERi0KS8PnqjWwiAARAA1LTACroVkAWli2F8tUYuIsEg5XJ5rLRzMQAH0Bd8XjBkNggSCIIhYrgYYwfBl1RUcGABWBKfkpoVZoxjjAYBJsWL8LKgA===

Google

Vasily
14.05.2018
13:50:41
Примерно так
Меганеудобно, когда на рабочем компе нет инета

Friedrich
14.05.2018
13:52:21
Как вы там вообще живёте!

Vasily
14.05.2018
13:52:40
Хочется пошутить про банку, но пока не знаю как
Нюгет локально поднял на сетевой шаре, как :)
Вышеприведенные конструкции c# позволяет проворачивать
f# пока не хочет

Evgeniy
14.05.2018
13:57:02
@vshapenko Кажется, ты чего-то лишнего зарезал.

Vasily
14.05.2018
13:57:44
'
А поконкретнее?

Evgeniy
14.05.2018
13:58:30
Если ты хочешь вызывать PropertyChanged, то тебе сначала нужно скастовать к INotifyPropertyChanged.
А поконкретнее?
Не, я пытался твой код причесать, и там чего-то не хватает, ev вот это всё.

Vasily
14.05.2018
13:58:57
Ну раньше у меня был протектед Notify

Google

Vasily
14.05.2018
13:59:08
КОторый я мог вызвать

Evgeniy
14.05.2018
13:59:09

Vasily
14.05.2018
13:59:20
А, точно
Тогда действительно надо каст на интерфейс
Хотя не прокатит
Он же Trigger не даст сделать
Получается я на каждый тип VM должен имплементить свой INOtifyPropertyChanged

Bonart
14.05.2018
14:47:16
Или Fody

Friedrich
14.05.2018
14:48:10

Bonart
14.05.2018
14:49:35
Ему по идее достаточно свойств, а работает он на уровне IL-кода, т.е. F# вряд ли должен страдать

Roman
14.05.2018
14:50:07

Evgeniy
14.05.2018
15:00:18
https://github.com/Fody/PropertyChanged/issues?q=is%3Aissue+f%23+is%3Aclosed

Friedrich
14.05.2018
15:00:58

Evgeniy
14.05.2018
19:38:09
https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1053-span.md
Идет работа! Вот @yerumaku будет доволен.

Vlad
14.05.2018
19:41:08

Evgeniy
14.05.2018
19:41:21

Vlad
14.05.2018
19:41:26

Evgeniy
14.05.2018
19:46:22
Внезапный F# в статье.
https://habr.com/post/354682/

Google

Evgeniy
15.05.2018
04:48:58
Доброе утро.
https://twitter.com/_cartermp/status/996203834572599296
Всем рекомендовано к прочтению. :)

Klei
15.05.2018
05:10:55
Как можно предпочесть первый вариант, если при малейшем переименовании он легко деградирует в третий?
https://docs.microsoft.com/ru-ru/dotnet/fsharp/style-guide/formatting#formatting-pipeline-operators

Evgeniy
15.05.2018
05:26:59

Klei
15.05.2018
05:43:17
Еще эта штука напрягает. Если происходит изменение уровня табуляции, вторая строка может стать в ровень с первой.
{ Boss = "Jeffrey"
Lackeys = ["Zippy"; "George"; "Bungle"] }
По моему лучше использовать:
{ Boss = "Jeffrey"
Lackeys = ["Zippy"; "George"; "Bungle"] }
При такой записи вижуалка как правило справляется.

Evgeniy
15.05.2018
05:48:53
?
Я вспомнил, что в VS недавно чинили отступы. Не доделали?
Нет, это было про другое.
https://github.com/Microsoft/visualfsharp/pull/4702
https://www.hillelwayne.com/talks/beyond-unit-tests/
Осторожно, питон. Но это в том или ином виде применимо к F#.
Правда, я не могу припомнить ни одной хорошей библиотеки для контрактов. Наверное, та печально известная своим смущающим названием библиотека про контракты (только предусловия)?
Я про DependentTypes.
https://jackfoxy.github.io/DependentTypes/

Andrew
15.05.2018
06:45:11

Nikolay
15.05.2018
06:46:23
А линтер для F# есть?

Evgeniy
15.05.2018
06:46:39

Nikolay
15.05.2018
06:51:00

Evgeniy
15.05.2018
06:51:27

Nikolay
15.05.2018
06:51:57
Пример?
Ну например, не используешь интерфейсы
Ивенты это же тоже не функционально?

Evgeniy
15.05.2018
06:53:07
?

Google

Vasily
15.05.2018
06:53:55

Anatoly
15.05.2018
06:54:59
Пример?
используешь Console.WriteLine и всё. тебя сразу линчуют

Vasily
15.05.2018
06:55:01
Вот я, например, вчера заменил часть шарпового кода на f#. Минус 400 строк без потери функционала

Vlad
15.05.2018
06:55:28
?
надо рослин апи пилить) это к теме
и поверх него анализаторы

Nikolay
15.05.2018
06:56:50
Нужно смотреть
Это возможно то, что нужно

Vasily
15.05.2018
06:57:31
В реальной разработке будет тяжко

Nikolay
15.05.2018
06:57:50

Vasily
15.05.2018
06:58:43
Почему?
Потому что как минимум придется прочитать статью про функциональные структуры данных, а у меня руки третий год не доходят

Evgeniy
15.05.2018
06:59:54
Вспомнил старую статью про дизайн событий в F#.
https://blogs.msdn.microsoft.com/dsyme/2006/03/23/f-first-class-events-simplicity-and-compositionality-in-imperative-reactive-programming/

Nikolay
15.05.2018
07:03:08
Плюс же

Vlad
15.05.2018
07:03:38

Vasily
15.05.2018
07:04:53
Плюс же
Это ты ее ещё не начинал читать :)

Nikolay
15.05.2018
07:05:29

Evgeniy
15.05.2018
07:39:25
Это лишнее. ?
let (|Require|) expr value =
assert (expr value)
value
let positive x = x > 0
let even x = x % 2 = 0
let foobar ( x:int &
Require positive _ &
Require even _) =
printfn "%A" x
На самом деле обычного assert хватит всем. Нужно только кастомизировать его, чтобы красивый вывод в консоль был.
В F# assert работает через Debug.Assert. Может у кого есть на примете готовый listener для красивого вывода в консоль?

Google

Anatoly
15.05.2018
07:51:23

Evgeniy
15.05.2018
07:53:12

??
15.05.2018
09:10:42
Идет работа! Вот @yerumaku будет доволен.
Надеюсь jit будет собирать f# также оптимально как c#. Ещё услышал за работу c# на новой версии винды от третьих лиц, мол будет чертовски хорошо (надо будет загуглить).

Evgeniy
15.05.2018
09:11:19

Bonart
15.05.2018
09:19:33
JIT без разницы какой язык.
Косвенно разница может быть в специальной оптимизации характерных для компиляторов того или иного языка фрагментов байткода.

Evgeniy
15.05.2018
09:21:06
Да. Я просто зануда. :)

Vasily
15.05.2018
09:21:26


Roman
15.05.2018
10:04:55
Функциональное программирование на F# (2011)
Автор: Дмитрий Сошников
#fsharp #books
Автор книги, Дмитрий Сошников, является компьютерным специалистом и координатором академических программ департамента стратегических технологий Microsoft, а также преподаёт курсы функционального программирования на F#, о чём и пойдёт речь в этой книге. В ней вы найдёте примеры использования F# для доступа к реляционным или слабоструктурированным XML-данным, для веб-разработки и веб-майнинга, визуализации данных и построения диаграмм и многого другого.
В книге рассматриваются следующие темы:
✔️ основы функционального программирования;
✔️ рекурсивные структуры данных;
✔️ императивные и объектно-ориентированные возможности F#;
✔️ метапрограммирование;
✔️ параллельное и асинхронное программирование.
Преимущества:
➕ доступный язык изложения;
➕ множество примеров работы с MPI, APS.Net и другими библиотеками .Net;
➕ исчерпывающий материал по функциональному программированию.
Недостатки:
➖ не подходит новичкам.


Evgeniy
15.05.2018
10:05:25
Ее бы обновить. :)
@shwars

Bonart
15.05.2018
10:05:40
Книжка скорее для тех, кто уже в C# хорошо умеет

Roman
15.05.2018
10:05:49

Bonart
15.05.2018
10:06:04
Автор пока обновление делать не хочет

Dmitri
15.05.2018
10:23:51

Roman
15.05.2018
10:25:59

Dmitri
15.05.2018
10:27:15