@Fsharp_chat

Страница 709 из 772
Vasily
14.09.2018
09:08:20
Ща Ivan набросит

Ayrat
14.09.2018
09:08:49
Я уже чувствую как он накидывает даже не лопатой, а экскаватором

Vasily
14.09.2018
09:09:05
Похоже на то

Klei
14.09.2018
09:11:07
Совершенно верно. Я пытался понять чем композиция от пайпинга отличается
https://github.com/kleidemos/fsharpforfunandprofit.gitbook/blob/thinking-functionally/posts/function-composition.md

Google
Ivan
14.09.2018
09:11:18
Да все равно нужно психологию менять. Императивное: вот у меня есть число, я получаю от него синус, а результат возвожу в квадрат. Функциональное: ( когда (когда (будет число) получу синус) возведу в квадрат)

Artemy
14.09.2018
09:20:15
Тут, наверное, императивное vs декларативное получается

Roman
14.09.2018
09:20:37
Самое понятное, что я слышал - функции в ФП отображают одно множество в другое. Множества значений существуют сами по себе, и значения в них такие же иммутабельные, как, например целые числа. Ты можешь прибавить к 5 что-нибудь и получить результат, но это будет другое число, а 5 как была, так и осталась 5.

Evgeniy
14.09.2018
09:41:07
Валентин let flip f x y = f y x let curry f x y = f (x, y) let uncurry f (x,y) = f x y let (^) f x = f x let charToInt = int >> flip (-) ^ int '0' let digit = string >> flip Seq.item |> uncurry >> charToInt |> curry |> flip

Насладитесь красотой функциональной композиции.

Vasily
14.09.2018
09:41:47
Изыди

Evgeniy
14.09.2018
09:42:19
Да тут все понятно!

Artemy
14.09.2018
09:42:26
?

Vasily
14.09.2018
09:42:27
Матан

Evgeniy
14.09.2018
09:42:33
Я даже вспомогательную функцию charToInt написал для читаемости.

Vasily
14.09.2018
09:42:53
Ну, читаемость это не улучшило

Напоминает доки Hopac

Google
Vasily
14.09.2018
09:43:08
Избранные

Evgeniy
14.09.2018
09:43:16
Ну, это как со статьями по математике.

Нужна привычка. :)

Vasily
14.09.2018
09:44:12
Кошка сначала боялась пылесоса, а потом втянулась (с)

Можно еще вспомнить ту серию Саус парка про моноколеса

Vasily
14.09.2018
09:45:57
||>

Evgeniy
14.09.2018
09:51:01
||>
Нет.

Лучше так оставить.

Vasily
14.09.2018
09:51:50
Да, не поможет

Evgeniy
14.09.2018
09:57:22
Ща без стринга напишем.

У меня тут все равно долгие вычисления идут, делать нечего. :)

Vasily
14.09.2018
09:57:43
Логарифмом на рекурсии

Evgeniy
14.09.2018
09:59:04
Vasily
14.09.2018
10:02:06
Ещё варианты?

Александр
14.09.2018
10:10:38
let digit number n = let divisor = pown 10 (int (log10 (double number)) + 1 - n) (number / divisor) % 10

Friedrich
14.09.2018
10:11:34
let digit number n = let divisor = pown 10 (int (log10 (double number)) + 1 - n) (number / divisor) % 10
Вот это мне нравится. Только с границами применимости определиться.

Evgeniy
14.09.2018
10:19:30
Скучно.
Вот это нескучно: let flip f x y = f y x let (^) f x = f x let rec iterate f value = seq { yield value yield! iterate f (f value) } let digits = iterate ^ flip (/) 10 >> Seq.takeWhile ^ (<) 0 >> Seq.map ^ flip (%) 10 >> Seq.rev let digit = flip (digits >> flip Seq.item)

Я думаю, вы простите мне немного скобочек.

Ладно, шутки шутками.

Google
Fill
14.09.2018
10:43:28
Хорошо, что когда я начинал, я не задавал здесь много вопросов

Evgeniy
14.09.2018
10:44:15
Бывает.

Особенно, если не выкупаешь иронию. :)

> enricosada [2:40 PM] Hi! can i ask some beta tester for https://github.com/enricosada/paket-netcore-testing-as-tool/ ? it's the latest paket .net core, afaik is done (minus known bugs). - paket and paket.bootstrapper as sdk tool (dotnet tool install) - a nicer integration with sdk (a dotnet build from fresh clone will work, will do bootstrapping before normal restore) - support for paket.bootstrapper.exe.config (to pin the paket version, and usual other settings) (edited)

https://twitter.com/alfonsogcnunez/status/1040506718470459392

Привет.

Artemy
14.09.2018
13:59:58
А F# Interactive, выходит, с .NET Standard не работает?

Artemy
14.09.2018
14:01:02
https://i.imgur.com/LJ5mlGP.png

Я netstandardlibrary, вроде, подключил: #I @"C:\Users\User\.nuget\packages" #r @"netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll"

Ayrat
14.09.2018
14:02:18
https://i.imgur.com/LJ5mlGP.png
рекомендую через ionide сегенирить references.fsx для неткор проекта, полная загрузка этих длл решит проблему вроде

Artemy
14.09.2018
14:05:08
Ayrat а как это сделать? А то Ионидом не пользуюсь

Ayrat
14.09.2018
14:06:17
кликнуть на кнопку в красном квадратике, затем правокликнуть по нужному проекту, и нажать на подсвеченную кнопку

там для нетстандарта кучи либ

Artemy
14.09.2018
14:11:08
У меня Ионид не очень работает. The current .NET SDK does not support targeting .NET Core 2.0. Either target .NET Core 1.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.0.

Наверное, нужно где-то путь правильный указать

Vasily
14.09.2018
14:11:42
В fsproj

Artemy
14.09.2018
14:11:48
Так-то .NET Core 2.0 у меня установлен вместе со студией

Google
Ayrat
14.09.2018
14:14:18
https://www.microsoft.com/net/download

даже точнее вот так https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.402-windows-x64-installer

Artemy
14.09.2018
14:14:49
Не может быть такого. Вместе с VS 15.8 обновлялся

Evgeniy
14.09.2018
14:14:58
Ayrat
14.09.2018
14:15:02
а ты бомбани dotnet —version

Artemy
14.09.2018
14:15:27
Хм, оно почему-то не видит у меня .NET SDK

Evgeniy
14.09.2018
14:15:46
Ну, устанавливай.

Artemy
14.09.2018
14:17:16
Видимо, Microsoft .NET Core SDK и просто .NET Core SDK - разные вещи

А то у меня вот такая установка: https://i.imgur.com/XFbja3Q.png

Artemy
14.09.2018
14:22:17
У меня в терминале ВСКода в ответ на dotnet —version пишет A compatible SDK version for global.json version: [2.1.300] from [D:\Work\Prog\F#\Web\SaturnSample\global.json] was not found: В обычной же командной строке выдаёт версию 2.1.402

Ayrat
14.09.2018
14:25:06
терминал вскода по умолчанию павершел

но очень странно что оно разное выдаёт

Grigoriy
14.09.2018
14:29:05
ну, напиши в глобал жсон 2.1.402

Artemy
14.09.2018
14:30:14
Лол, сработало

Я думал, новая версия включает в себя старую

Там вроде бы достаточно: #r "netstandard"
Да, вроде, оно это понимает. Но теперь ошибка другая. У меня FSharp.Data в зависимостях, соответственно я её подключил: #r @"fsharp.data\3.0.0-beta4\lib\netstandard2.0\FSharp.Data.dll" Но, тем не менее, мне пишется: The type 'XmlProvider' is not defined

Google
Ayrat
14.09.2018
14:35:29
Это тебе FSI кидает ошибку или интеллисенс?

интеллисенс может тормозить на таком кол-ве референсов

Artemy
14.09.2018
14:35:40
Интеллисенс в fsx-файле

Ayrat
14.09.2018
14:35:52
Зашли это всё в FSI и проверь

есть очень хорошая вероятность что заведётся

Artemy
14.09.2018
14:38:22
The type provider 'ProviderImplementation.XmlProvider' reported an error: The design-time type 'System.Xml.Linq.XElement' utilized by a type provider was not found in the target reference assembly set ...

Ayrat
14.09.2018
14:39:23
вот это грузится? System.Xml.Linq.dll

Artemy
14.09.2018
14:42:08
О, вот теперь всё заработало

Спасибо

Ayrat
14.09.2018
14:42:28
хочешь сказать тебе ionide не предложил эту либу зареференсить???

Artemy
14.09.2018
14:42:38
А System.Xml.Linq не входит в .NET Standard что ли?

Ayrat
14.09.2018
14:42:42
я просто сделал то же самое и у меня эта либа есть

входит конечно netstandard2.0\ref\System.Xml.Linq.dll"

мне ионид предложил её

Artemy
14.09.2018
14:43:12
Ну а мне вот пришлось её отдельно зареференсить

Ну Ионид дофига всего предложил

Ayrat
14.09.2018
14:47:32
а её не предложил? Мне предложил)

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