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
Admin
Nikolay
15.05.2018
06:56:56
Нужно смотреть
Это возможно то, что нужно
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 хватит всем. Нужно только кастомизировать его, чтобы красивый вывод в консоль был.
Google
Evgeniy
15.05.2018
07:51:09
В F# assert работает через Debug.Assert. Может у кого есть на примете готовый listener для красивого вывода в консоль?
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