АГ
Size: a a a
АГ
AA
{;}
в хаскеле - никто не используетDF
Y
B
– это не «конструктор с полем-парой», это именно «конструктор с двумя элементами». Первое – было бы В of (int * int)
AA
АГ
АГ
KV
АГ
KV
AA
data BTree a = Empty | Bin (BTree a) a (BTree a)на эфшарпе еще и уголки обычно пишут
rot_left = \case
Bin u p (Bin v q w) -> Bin (Bin u p v) q w
_ -> error "rot_left"
type 'a btree = Empty | Bin of 'a btree * 'a * 'a btree
let rot_left = function
| Bin(u,p,Bin(v,q,w)) -> Bin(Bin(u,p,v),q,w)
| _ -> raise (System.Exception "rot_left")
type btree<'a> = Empty | Bin of btree<'a> * 'a * btree<'a>
let rot_left = function
| Bin(u,p,Bin(v,q,w)) -> Bin(Bin(u,p,v),q,w)
| _ -> raise (System.Exception "rot_left")
АГ
Y
YS
AC
AA
AA
Y
AC