169 похожих чатов

А есть адекватные статьи, чтоб хорошо понять srtp? Офф доки

не до конца прояснили картину. Или только читать исходники какого-нибудь fsharpplus ?

11 ответов

13 просмотров

Ну, тут же только синтаксис понять и всё

А что осталось непонятным?

Sergey-Kostyaev Автор вопроса
Pavel S
А что осталось непонятным?

Пример в офф доке. Но после чтения спеки стало сильно лучше

Sergey Kostyaev
Пример в офф доке. Но после чтения спеки стало сил...

Я к тому что еслиб сформулировал что именно, возможно тут смогли бы прояснить

Sergey-Kostyaev Автор вопроса
Pavel S
Я к тому что еслиб сформулировал что именно, возмо...

это http://www.fssnip.net/7Ts/title/F-SRTP-of-Type-Classes-from-OO-Perspective понятно. Это непонятно: let inline konst x _ = x type CFunctor() = static member inline fmap (f: ^a -> ^b, a: ^a list) = List.map f a static member inline fmap (f: ^a -> ^b, a: ^a option) = match a with | None -> None | Some x -> Some (f x) // default implementation of replace static member inline replace< ^a, ^b, ^c, ^d, ^e when ^a :> CFunctor and (^a or ^d): (static member fmap: (^b -> ^c) * ^d -> ^e) > (a, f) = ((^a or ^d) : (static member fmap : (^b -> ^c) * ^d -> ^e) (konst a, f)) // call overridden replace if present static member inline replace< ^a, ^b, ^c when ^b: (static member replace: ^a * ^b -> ^c)>(a: ^a, f: ^b) = (^b : (static member replace: ^a * ^b -> ^c) (a, f)) let inline replace_instance< ^a, ^b, ^c, ^d when (^a or ^c): (static member replace: ^b * ^c -> ^d)> (a: ^b, f: ^c) = ((^a or ^c): (static member replace: ^b * ^c -> ^d) (a, f)) // Note the concrete type 'CFunctor' specified in the signature let inline replace (a: ^a) (f: ^b): ^a0 when (CFunctor or ^b): (static member replace: ^a * ^b -> ^a0) = replace_instance<CFunctor, _, _, _> (a, f)

Sergey-Kostyaev Автор вопроса
Ayrat Hudaygulov
В фшарпе годная спека

уже согласен, в спеке сильно понятнее

IdiocyAcceptance
Забористо

это с мсдна кстати

IdiocyAcceptance
Забористо

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/statically-resolved-type-parameters

Ayrat Hudaygulov
https://docs.microsoft.com/en-us/dotnet/fsharp/lan...

Я правильно понимаю, что в примере у CFunctora по сути сделали мультидиспатч для fmap ?..

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта