2012-03-07 13 views
41

this sunuşunun 30/78'inde, Simon, yazı tiplerinin uygulanmasının başlangıçta bir "umutsuzluk" olduğunu öne sürüyor. Bunun neden olduğunu bilen var mı?Tür sınıfları neden uygulamak zordu?

+1

Haskell'de uzman değil, belki de daha önce hiç yapılmadığı için ve kimse bunu nasıl yapacağını bilmiyordu. –

+1

Elbette, her zaman böyle oluyor :) Ama tip sınıfları durumunda, tam olarak ne sorunlara neden oldu? –

+0

@ ŁukaszLew - hayır, anladığım kadarıyla bu tamamen yeni bir Wadler ve Blott fikriydi. Öyleyse, örneğin başka çözümlere gidip uyum sağlayamadınız. – Ingo

cevap

77

Sanırım, daha önce hiç bir sanatın olmadığı zamanlarda hbc'de uygulandığım için neden bu kadar zor olduğunu ilk elden deneyime sahip birkaç kişiden biriyim.

Peki bakınız, Wadler & Blott kağıttan açıktı kontrol o tip Hindley'nin-Milner tür denetlemesini bir uzantısı idi ve bu zamanında etrafında sözlükleri geçen edilmelidir. Bundan gerçek bir uygulamaya kadar oldukça büyük bir adımdır. Zorluğu anlamanın iyi bir yolu, bunu yalnızca Wadler-Blott kağıdından başlayarak uygulamaktır. İlk olarak, yalnızca türleri kontrol etmekle kalmayan, aynı zamanda programı dönüştüren bir tip denetleyicisi düşüncesiyle gelmeniz gerekir; yazım denetimi yaparken delillerin (sözlükler) eklenmesi. Ayrıca, örnek beyanları bir çıkarım sistemi olarak kullanarak eskiden yeni sözlükler oluşturmayı da öğrenmeniz gerekiyor.

Geriye dönük olarak her şey belli olabilir, ancak o zamandan beri açıklamaların olduğu birçok makalenin yazıldığı unutulmamalıdır. Bir kâğıttan nasıl bir şey yapılacağını anlamak, ilk etapta onunla gelmekten çok farklıdır. Ayrıca, kendi sınıfında sorunlara yol açacak şekilde tür sınıflarının oldukça verimli olmasını istiyorsunuz.

+7

Bu hikayenin daha uzun bir versiyonunu beğenirsiniz, eğer bir yere gönderirseniz (veya yaptırırsanız). –

+4

@ JohnF.Miller Peki, 20 yıldan daha uzun bir süre önce artık detaylar artık hafızamda net değil. – augustss

+6

Daha fazla ayrıntıya gidebilir misiniz? Ayrıca bahsettiğin kağıtları da işaret edebilir misin? –