Size: a a a

2021 February 06

X

XÆA-XII in F# Chat
gsomix
Как запускаешь? Возможно, программа завершается раньше.
dotnet run
источник

X

XÆA-XII in F# Chat
Да, в этом проблема была
источник

X

XÆA-XII in F# Chat
А в F# есть утиная типизация, как в C#? Сработает ли такая вещь

type IMonad =
   abstract member Bind : 'b * ('b -> 'c) -> 'c

let (>>=) (a : IMonad) = a.Bind
?
источник

AH

Ayrat Hudaygulov in F# Chat
XÆA-XII
А в F# есть утиная типизация, как в C#? Сработает ли такая вещь

type IMonad =
   abstract member Bind : 'b * ('b -> 'c) -> 'c

let (>>=) (a : IMonad) = a.Bind
?
А где тут утиная типизация
источник

X

XÆA-XII in F# Chat
Ayrat Hudaygulov
А где тут утиная типизация
Ой, не дописал
источник

X

XÆA-XII in F# Chat
Короче, после этого можно будет использовать >>= вместо let!?
источник

AH

Ayrat Hudaygulov in F# Chat
XÆA-XII
Короче, после этого можно будет использовать >>= вместо let!?
Ну, нет. Но можно сделать так чтобы можно было
источник

AH

Ayrat Hudaygulov in F# Chat
Тебе нужно SRTP
В фшарпе есть утиная типизация. Честная
источник

X

XÆA-XII in F# Chat
Сейчас погуглю
источник

X

XÆA-XII in F# Chat
Так чтоль? let (>>=) (a: ^a when ^a : (member Bind : ^b * (^b -> ^c) -> ^c) ) = a.Bind
источник

g

gsomix in F# Chat
XÆA-XII
Короче, после этого можно будет использовать >>= вместо let!?
Я ничего не понял. Первое — это оператор, а второе используется только в контексте computation expressions.
источник

AH

Ayrat Hudaygulov in F# Chat
XÆA-XII
Так чтоль? let (>>=) (a: ^a when ^a : (member Bind : ^b * (^b -> ^c) -> ^c) ) = a.Bind
Это все равно не поможет, так как let! заменяется на Bind из типа билдера который почти никогда не связан с типом монады
источник

AH

Ayrat Hudaygulov in F# Chat
Но оператором выше ты сможешь просто писать монадический код
источник

AH

Ayrat Hudaygulov in F# Chat
Без билдеров
источник

X

XÆA-XII in F# Chat
Ладно
источник

X

XÆA-XII in F# Chat
Ну нафиг эту затею
источник

X

XÆA-XII in F# Chat
Пойду ждать, пока изобретут фшарп с тайпклассами
источник

AH

Ayrat Hudaygulov in F# Chat
XÆA-XII
Ну нафиг эту затею
Если чо, то это возможно и уже сделано. Но просто это неудобно в отсутствии хкт
источник

X

XÆA-XII in F# Chat
Ayrat Hudaygulov
Если чо, то это возможно и уже сделано. Но просто это неудобно в отсутствии хкт
Что такое хкт?
источник

AH

Ayrat Hudaygulov in F# Chat
И поэтому сделать из фшарпа хаскель не получится без приседа на бутылку
источник