@Fsharp_chat

Страница 640 из 772
Vasily
14.07.2018
19:33:03
Точнее не так - скорость написания кода в райдере выше, чем в студии

Vasily
14.07.2018
19:54:29
В обычной

Вскод не пробовал

Google
Vasily
14.07.2018
19:54:46
В силу некоторых причин

Vasily
15.07.2018
09:09:35
в чем проявляется?
Скорость работы, реакция на ввод, отсутствие тормозов явных

Pavel
15.07.2018
14:31:43
напомните, пожалуйста, что делать, когда в конструктор класса надо передать функцию, которая должна работать на многих типах объектов (например, лог)? если делать "в лоб", в качестве дженерик параметра функция берёт первое использование =\

типа вот так всё хорошо let log description obj = printfn "%s:\n%s" description (obj |> SimpleRaft.Core.Utils.Print.leftPad 4) type A () = let i: int = 10 do log "int" i let b: bool = true do log "bool" b а вот так ругается в случае с булом на то, что у log сигнатура (string -> int -> unit) type A (log) = let i: int = 10 do log "int" i let b: bool = true do log "bool" b

Friedrich
15.07.2018
14:39:28
явно указать тип log
И какой же тип там указать? ?

Sunny
15.07.2018
14:39:47
И какой же тип там указать? ?
а какой тип у SimpleRaft.Core.Utils.Print.leftPad ?

Friedrich
15.07.2018
14:40:01
По идее, он хочет ∀x: x → void

Но таких типов в F# не бывает :(

Sunny
15.07.2018
14:40:19
или там не бывает такого?

Google
Pavel
15.07.2018
14:40:41
он просто после каждого endl добавляет n пробелов

Sunny
15.07.2018
14:41:30
int -> 'a -> string
я не шарю, как записывается типизация в эфшарпе, но в хаскеле тогда для log прокатило бы, наверное string -> 'a -> unit

или что-то в таком духе

Pavel
15.07.2018
14:42:15
ну вот тут не прокатывает, т.к. 'a типизируется по первому использованию

Sunny
15.07.2018
14:42:26
хм, интересно-интересно

Friedrich
15.07.2018
14:42:26
Мне думается, что такая сигнатура без forall не записывается.

Pavel
15.07.2018
14:42:31
не прокатывает =)

по идее, да

Friedrich
15.07.2018
14:42:52
Я выше указал, как мы в F# такие вещи кодируем, если надо.

Pavel
15.07.2018
14:42:57
очень надеялся на то, что кроме 'a и ^a есть ещё что-то

Friedrich
15.07.2018
14:43:27
Sunny
15.07.2018
14:43:44
Да.
покажи пжлст, как это записывается

хотелось бы узнать ето

Pavel
15.07.2018
14:44:53
type Logger = member __.log description obj = printfn "%s:\n%s" description (obj |> SimpleRaft.Core.Utils.Print.leftPad 4) type A (logger: Logger) = let i: int = 10 do logger.log "int" i let b: bool = true do logger.log "bool" b

но выглядит не оч, да

Friedrich
15.07.2018
14:45:31
покажи пжлст, как это записывается
Вот товарищ выше написал. Именно так.

Google
Ayrat
15.07.2018
16:08:41
Такие вещи через inline доступны. Типа let sum a b = a + b Выведет тип как int -> int -> int А то же самое с inline ^a -> ^а -> ^a, где ^a имеет статический метод +

Можно и руками через srtp написать

Ayrat
15.07.2018
16:09:41
Эт да

Friedrich
15.07.2018
17:39:36


Alexey
15.07.2018
17:40:44
Приу

Vladimir
15.07.2018
17:55:05
Но таких типов в F# не бывает :(
Была же статья как сделать экзистенциальные типы, их там назвали crates

Vladimir
15.07.2018
19:44:14
Прочитал сча про зебру, просто шикарная статья, столько разных техник!

Igor
15.07.2018
19:45:06
Думаешь стоит перевести?

Vladimir
15.07.2018
19:46:40
Однозначно

Vasily
15.07.2018
19:50:17
Мне там про роуты понравилось

Радикс три

Вот это вот всё

евроневидимка
15.07.2018
19:52:25
сраный ксамарин

засрал мне F#-темплейты своими андроидными импортами

что за дела вообще

Igor
15.07.2018
19:54:58
Меня VSCode иногда бесит, по 10 раз добавляя импорты, когда что-то вводишь в подске. Благо она сама потом их подсвечивает как ненужные.

Google
Летучая
15.07.2018
20:04:58
Дратути! Как называется функция над Seq, кoтoрая пo oчереди кo всем элементам пoследoвательнoсти применяет маппинг и передаёт результат дальше? Есть ли такая? Мапинг: 'a -> 'b -> 'a Нужна сигнатура: 'b seq -> ('a -> 'b -> 'a) -> 'a

Летучая
15.07.2018
20:09:00
Откуда берется 'a ?
Oчень хoрoший вoпрoc, я oказывается переменную замкнул и oтсюда пoшла путаница (спасибo!) (или не замкнул...)

евроневидимка
15.07.2018
20:10:01
а Span<T> в фшарпе не поддерживается?

на меня компилер ругается

Летучая
15.07.2018
20:10:30
Хм. Тoчнo, этo fold, спасибo! ('a -> 'b -> 'a) -> 'a -> 'b seq -> 'a

Roman
15.07.2018
20:10:52
а Span<T> в фшарпе не поддерживается?
Вроде отдельным пакетом ставится

евроневидимка
15.07.2018
20:10:57
так я поставил

Roman
15.07.2018
20:11:01
Аа

евроневидимка
15.07.2018
20:11:12


Roman
15.07.2018
20:11:40
Все что я знаю про спан это то что он пока ставится отдельным пакето

евроневидимка
15.07.2018
20:11:59
ну да

System.Memory

ладно, массивом обойдусь

Vlad
15.07.2018
20:12:25
евроневидимка
15.07.2018
20:12:28
а, окей

почему у меня твоя авка вечно пропадает?

Vlad
15.07.2018
20:14:33
а, окей
https://github.com/Microsoft/visualfsharp/pull/4888

Google
Vlad
15.07.2018
20:14:46
Хотя видимо надо 15.8 дождаться

Студии

Igor
15.07.2018
20:40:55
Кто-нибудь тыкал FSharpPlus? Есть там операто что бы event или IObserable<T> замапить? Пытаюсь <*> заюзать, но не компилируется.

А я перепутал операторы, надо было <!> ?

Andrew
16.07.2018
05:39:54
А я перепутал операторы, надо было <!> ?
Это самая фшарпная вещь, которую я слышал за последнее время

Igor
16.07.2018
05:44:50
В итоге пока решил выпилить fsharpplus, тк этот оператор не удобно использовать. Делаю по простому |> Observable.map

Vagif
16.07.2018
07:58:51
Пойдя на поводу у Акклинга, мы обновили FSharp.Core до 4.5, а Бартош сегодня выпустил новый Акклинг, где вернул старую версию FShap.Core (4.3.4). На вопрос, почему, объяснил, что ему в дискуссии в Слаке сказали, что переходить на FSharp.Core пока рано, это релиз для будущих версий компилятора и инструментария. Теперь вот сижу, думаю, возвращаться на старую версию, или остаться на новой. У нас все тесты работают, ни одной новой проблемы не возникло. Есть ли у кого-нибудь опыт работы с FSharp.Core 4.5?

Vasily
16.07.2018
07:59:23
Ну я вроде в проект подсосал

Пока проблем особых не видел

Vagif
16.07.2018
08:07:02
Мы используем 3 провайдера (JSON, Yaml, SQL), все работают.

Возвращаться.
А почему, Роман?

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