@Fsharp_chat

Страница 667 из 772
Roman
15.08.2018
20:51:04
Привет!

Andrew
15.08.2018
20:51:18
привет

нужда заставила использовать библиотеки .dll, решил попробовать F#, надеюсь, опыт будет положительным.

Google
Andrew
15.08.2018
21:17:51
не использовал)

использовал .a и .so)

Roman
15.08.2018
21:18:24
использовал .a и .so)
Аааа. А почему f# , а не c#?)

Andrew
15.08.2018
21:19:05
я вонна-би ФП-шник)

Roman
15.08.2018
21:21:50
я вонна-би ФП-шник)
F# не только ФП) Но в любом случае, добро пожаловать, тут хорошие ребята) Задавай вопросы, если что.

Andrew
15.08.2018
21:22:04
хорошо, спасибо!

посоветуйте, плиз, что почитать по F#)

Mykola
15.08.2018
22:33:57
посоветуйте, плиз, что почитать по F#)
https://fsharpforfunandprofit.com - англоязычный блог, который можно скачать в пдф (1900 страниц). с него начинал. в прибитом вверху меседже ребята также полезных переводов наделали

Andrew
15.08.2018
22:47:35
спасибо. а из книг есть что-то стоящее?

TEH3OP
15.08.2018
22:51:15
спасибо. а из книг есть что-то стоящее?
Так там такие же буквы как в книге. >8)

Ayrat
16.08.2018
03:09:19
Vlad
16.08.2018
04:47:15
@Andrew_ya3

Ayrat
16.08.2018
04:47:28
На хабре вышло интервью с @fillpackart https://habr.com/post/420321/

Google
Vlad
16.08.2018
04:47:33
Эта как вводная хорошая

Там же ещё куча файлов

Ayrat
16.08.2018
05:07:04
https://twitter.com/codeinthehole/status/1029682224713617408

Bonart
16.08.2018
05:42:30
https://twitter.com/codeinthehole/status/1029682224713617408
"Чтобы сообщество пришло к пониманию, что юнит-тесты — бесполезный мусор, а языки с динамической типизацией (не путать со слабой) — самый крупный провал в истории индустрии" - вот чем он тебя пронял

Bonart
16.08.2018
05:49:44
да, ты знал! но я ничо против динамических языков не имею)
Я знал, что по первому пункту разногласий не будет ;)

アレクセイ
16.08.2018
06:05:30
На хабре вышло интервью с @fillpackart https://habr.com/post/420321/
Вроде умный парень, а про system.collections.immutable не знает... парадокс(либо я читал по диагонали)

Ayrat
16.08.2018
06:09:45
Bonart
16.08.2018
06:09:48
Вроде умный парень, а про system.collections.immutable не знает... парадокс(либо я читал по диагонали)
Там малость сумбурно... Ибо он просил контроль иммутабельности на уровне компилятора (т.е. чтобы компилятор знал, что некоторые типы - чистые)

Сейчас можно сделать только иммутабельные реализации, но компилятор это никак учитывать (и скажем оптимизировать и бить по рукам за грязь) не будет

アレクセイ
16.08.2018
06:11:48
ReafonlyDictionary не иммутабельный

アレクセイ
16.08.2018
06:12:45
Там речь не за скорость была, насеолько я понял

Ayrat
16.08.2018
06:12:50
Просто он почему-то привел пример readonlyDictionary, но обошел вниманием immutableDictionary
А разницы никакой. Получил в метод на вход иммутабл коллекцию, получаешь ссылку на элемент и конец

Bonart
16.08.2018
06:14:48
А разницы никакой. Получил в метод на вход иммутабл коллекцию, получаешь ссылку на элемент и конец
Ну кое-какая есть - ReadOnly и саму коллекцию менять не мешает (третьим лицам).

Ayrat
16.08.2018
06:16:03
Google
アレクセイ
16.08.2018
06:16:56
А почему коллекция перестаёт быть иммутабельной? Прошу прощения, я ещё не проснулся)

Vlad
16.08.2018
06:18:03
Ну кое-какая есть - ReadOnly и саму коллекцию менять не мешает (третьим лицам).
Ну там не поменяешь же. Если только не кастанешь к оригиналу

Ayrat
16.08.2018
06:18:11
А почему коллекция перестаёт быть иммутабельной? Прошу прощения, я ещё не проснулся)
Ну то что в ней элементы изменяются по велению левой пятки ничо?)

Bonart
16.08.2018
06:19:22
Ну там не поменяешь же. Если только не кастанешь к оригиналу
Так оригинал может быть не у тебя и может изменяться независимо от тебя. ReadOnly всего лишь попытка дать тебе по рукам, а не настоящему владельцу коллекции.

アレクセイ
16.08.2018
06:20:50
Ну то что в ней элементы изменяются по велению левой пятки ничо?)
Так элементы мутабельные, в этом беда. А саму коллекцию не поменяешь же

Ayrat
16.08.2018
06:21:25
Нет иммутабельности на уровне компиляции

Bonart
16.08.2018
06:21:41
Bonart
16.08.2018
06:22:03
Vlad
16.08.2018
06:22:05
https://github.com/Liminiens/Benchmarks/blob/master/Benchmarks/BenchmarkDotNet.Artifacts/results/Benchmarks.Benchmarks.FindSequenceBenchmark-report-github.md

Bonart
16.08.2018
06:23:21
Ну иммутабл сишарпа в этом плане не отличается ничем)
Вообще-то отличается. Переданный по ссылке Immutable на стороне не изменить - можно только создать новый Immutable. Дыра остается на уровне мутабельности элементов

アレクセイ
16.08.2018
06:25:07
Об этом и речь в интервью.
А ну да. Просто почему он избрал именно readonlyDictionary, когда речь шла про иммутабельность. Это меня сбило с толку )

Bonart
16.08.2018
06:26:01
Если иммутабл список содержит ссылочные типы то его поведение не отличается никак
Вот у тебя есть List. Ты можешь сделать над ним ReadOnlyList, отдать наружу, а сам добавлять элементы. C Immutable этой конкретной дыры нет.

https://github.com/Liminiens/Benchmarks/blob/master/Benchmarks/Benchmarks/FindSequenceBenchmark.cs

Vlad
16.08.2018
06:28:49
Вот у тебя есть List. Ты можешь сделать над ним ReadOnlyList, отдать наружу, а сам добавлять элементы. C Immutable этой конкретной дыры нет.
Ну это да. Но я все равно склоняюсь к тому что это или на уровне языка быть должно или не нужно

Bonart
16.08.2018
06:29:47
Ну это да. Но я все равно склоняюсь к тому что это или на уровне языка быть должно или не нужно
На уровне языка конечно отлично (если будет), но в честь чего вдруг не нужно?

Google
Bonart
16.08.2018
06:30:28
С ReadOnly вообще содержимому доверять нельзя - только каждый раз перезапрашивать

アレクセイ
16.08.2018
06:31:13
Новый язык надо учить и проталкивать в команду, а тут взял коллекции и распаралелил всё на plinq остваясь в том же c#. Комар носа не подточит)

Aleksander
16.08.2018
06:43:05
Автор теста Immutable использовал через опу
Автор теста тут :) Расскажешь, как правильнее?

Andrew
16.08.2018
06:43:49
Ну то что в ней элементы изменяются по велению левой пятки ничо?)
Не совсем понимаю почему это проблема коллекции, а не того кто ее использует с мутабельными классами

Ayrat
16.08.2018
06:44:37
Не совсем понимаю почему это проблема коллекции, а не того кто ее использует с мутабельными классами
Это проблема компилятора который не можете проверить элементарное.

Есть даже системный атрибут Immutable или ImmutableObject

Рослином проверять чтобы Immutable коллекции могли принимать только классы с этим атрибутом. В самих классах не позволять делать референс поля без этого атрибута. Изи

Andrew
16.08.2018
06:49:23
Vlad
16.08.2018
06:56:08
На уровне языка конечно отлично (если будет), но в честь чего вдруг не нужно?
Потому что коллекция неизменяема, а типы нет. Вопрос зачем тогда это, если можно просто создать новую коллекцию из предыдущей самому в случаях, где это надо. Ведь это же должно удобства приносить какие-то. А так это класс коллекций с условностями и Immutable в названии

Возможно я не прав. Но мне кажется это должна быть фича уровня компилятора

Ayrat
16.08.2018
06:58:46
Того же мнения.

アレクセイ
16.08.2018
07:06:23
Это какой-то очень частный случай получается, а в общем случае мы получаем другую модель типизации
автор за это и плачется. А ImmutableList и иже с ними вполне себе честные иммутабельные коллекции. К ним у меня нет претензий.

Vasily
16.08.2018
07:20:02
Мож, превентивно забанить

Скорее всего бот же

アレクセイ
16.08.2018
07:22:41
shoot first, ask questions later

Vasily
16.08.2018
07:23:12
@fvnever А куда тест раннер логи кладет?

Roman
16.08.2018
07:24:29
Привет!

Pavel
16.08.2018
07:44:51
Прочитал интервью и там опять Рихтер, чем он так людям нравится?

Ayrat
16.08.2018
07:49:23
Прочитал интервью и там опять Рихтер, чем он так людям нравится?
я вот тоже не осилил рихтера, ущербным себя по этому поводу не чуствую.

Vasiliy
16.08.2018
07:49:35
Google
Vasiliy
16.08.2018
07:50:05
правда про интервью не знаю.

Vlad
16.08.2018
07:51:24
Прочитал интервью и там опять Рихтер, чем он так людям нравится?
ну в нем есть пара интересных разделов, но когда его советуют новичкам хочется убить на месте

Pavel
16.08.2018
07:53:11
какое интервью?
тут скидывали же недавно. https://t.me/fsharp_chat/66617

нууу он хорошо излагает мысли имхо.
Вот именно подача мне не зашла. Воспринимаю ее как книга для интервью.

Pavel
16.08.2018
07:55:35
а у него есть еще что-то?

Vasiliy
16.08.2018
07:55:45
ага
ахах, шикарная, книга.

Ayrat
16.08.2018
07:58:26
Обновил VS до 15.8 Филип картер (здесь)[https://blogs.msdn.microsoft.com/dotnet/2018/08/14/announcing-f-4-5/] говорил что: For F# 4.5, the compiler SDK version will be 10.2 у меня как был 10.1 так и остался

Vasiliy
16.08.2018
07:58:40
имхо, есть несколько книг, для прочтения: 1) Нагель Professional C# 7 and .NET Core 2.0 2) рихтер CLR via C# (имхо потому что там все равно c#) 3) C# In Nutshell Но: во 2 книге, мне не нравится, как идет повестование, очень много топиков пересекается друг с другом, в голове каша. 3 книга, это реально огромный справочник. Рихтер читается как художественная литература. Но это мое мнение. И рихтера я уже читал после 2 лет опыта работы с c#

Vasily
16.08.2018
07:59:45
Первый Рихтер, которого я прочитал, помнится, был "Профессиональное программирование на win32"

Ayrat
16.08.2018
08:00:59
Охренеть. после обновления на 15.8 у меня dotnet build вешается и ничего не делает

Ayrat
16.08.2018
08:02:38
match! не работает, т.к. нового комплиятора нет

короче, хрень какая-то

Vasily
16.08.2018
08:06:54
А что говорит пакет Fsharp.Compiler.Tools?

Ayrat
16.08.2018
08:07:39
не знаю. А что он должен сказать? я его не референсю в проектах

Vasily
16.08.2018
08:08:02
Ну там можно через него попробовтаь

Страница 667 из 772