
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

Google

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

Roman
14.09.2018
09:18:51

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
Кошка сначала боялась пылесоса, а потом втянулась (с)
Можно еще вспомнить ту серию Саус парка про моноколеса

Evgeniy
14.09.2018
09:45:42

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

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 не работает?

Evgeniy
14.09.2018
14:00:19

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

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:12:17

Evgeniy
14.09.2018
14:12:28

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

Klei
14.09.2018
14:19:23

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
а её не предложил? Мне предложил)