LINUX.ORG.RU

История изменений

Исправление loz, (текущая версия) :

Посмотри на его код. Если передать в foo прямоугольник с равными сторонами, (и каким-то, пока непонятным мне образом система поймет что сработать должен последний кейз), то метод foo сработает как для квадрата.

И что у нас теперь появился тип 3symbols? Какое это отношение имеет к типам?

А что такое тип, как не набор операций на нем? :) А тут над типом square есть операция foo, и можно написать еще кучу других. Так что это и будет именно тип квадрат, а прямоугольник и square? - лишь детали реализации.

Исходная версия loz, :

Посмотри на его код. Если передать в foo прямоугольник с равными сторонами, (и каким-то, пока непонятным мне образом система поймет что сработать должен последний кейз), то метод foo сработает как для квадрата.

И что у нас теперь появился тип 3symbols? Какое это отношение имеет к типам?

А что такое тип, как не набор операций на нем? :) А тут над типом square есть операция foo, и можно написать еще кучу других. Так что это и будем именно тип квадрат, а прямоугольник и square? - лишь детали реализации.