Ben okuyorum Hindley'nin-Milner yazarak algoritması bir uygulama yazma ve görüyoruz ederken, her zaman gibi argümanlar son tipini belirleyecek ya atom tiplerini veya türlerini, elde edersiniz boyunca her değişken bağlı olarak, t1 -> t1
ya (t1 -> t2) -> (t1 -> t2)
Burada t1
ve t2
tip değişkenleridir.
Ben böyle bir şey almak için bir yol düşünemiyorum t1 -> t2
ya da basitçe t1
, ben anlıyorum algoritmanın kırık anlamına gelir çünkü ifade gerçek türünü belirlemek için hiçbir yolu olmayacaktır. Her değişkenin bağlı olduğu sürece asla bu "kırık" gibi bir tür elde edemeyeceğinizi nasıl anlarsınız?
Algoritmanın değişkenler ile türler verdiğini biliyorum, ancak argümanları işleve geçtikten sonra bunlar her zaman çözülür, bu tür bir işlevde durum böyle olmaz t1 -> t2
. Bu yüzden algoritmanın asla bu tür verimler veremeyeceğinden nasıl emin olduğumuzu bilmek istiyorum.
(Görünüşe göre ML'de bu "kırık" türleri alabilirsin , ama lambda hesabını soruyorum.)