A recent question!!
ile listeye endekslenmesi, gerçekten yavaş yavaş bunu yapmak için kolay bir yolu var birPolimorfizmi bir veri yapısına nasıl aktarabilirim?
[ReifiedLens s t a b]
içine
forall f . Functor f => [LensLike f s t a b]
dönüştürmek için merak götürdü, ama oldukça inanılmaz var yetersiz. reflection
'da kullanılana benzer bir numara çekmek için yeterli parametrikliğin olması gerektiği gibi hissettiriyor, ama hiçbir şey anlayamıyorum. Bunu verimli bir şekilde yapmak mümkün mü?
Bunun bile mümkün olduğunu sanmıyorum. "Functor f -> [LensLike f s t a b]" ile [Functor f -> LensLike f s t a b] 'arasına gitmeliyiz. Başlamak için bir listeyi çıkarmak için bir 'Functor' f '' yapmalıyız ve bir tane yok. –
@ AndrásKovács Belki de 'Functor f -> [LensLike f s t a b] 'tür işlevlerini anlamlı bir şekilde' Functor f' argümanını incelemeden sonuç listesinin uzunluğunu seçmesi gerektiğini kendimize ikna etmek için parametrik bir argüman kullanabiliriz. O zaman yolun geri kalanını oradan almak çok kolay. (Tabii ki bu iddia, 'F' türünde bir F 'için 'Functor F -> [LensLike Fs t a b]' tür fonksiyonlar için açıkça doğru değildir. –
@ AndrásKovacs, bu benim korkumdu. Herhangi bir "Functor" sözlüğünün kimliğini sihirli bir şekilde alabileceğimiz, içinden geçebileceğimiz bir tür "süper oyuncu" sözüne ihtiyacımız var. – dfeuer