это сложение дроби с числом, и он ругается, Duplicate definition of value '( + )' можно победить?
type TDrob = {x:int; y:int}
let dr(a, b) = {x=a; y=b}
let (+) a b = dr(a.x* b.y + b.x*a.y, a.y*b.y)
let (+) a b =
let t = dr(a.y, a.y)
a + t
Все верно, ты вторую функцию с тем же именем создал. И если я правильно понимаю, заодно переопределил все операции сложения в том числе и для чисел. Если хочешь оператор только для типа, то надо объявлять соответсвующий метод именно в типе (как в C#).
https://gist.github.com/kagetoki/5d40df0fefa3addfd796516e62509e47
Обсуждают сегодня