Ben tür imzası data NamedPoint = NamedPoint String Int Int
Bir veri yapısını alan ve içindeki tüm satırları döndüren genel bir işlev var mı?
data Person = Name Int Int Int
gibi görünecektir ve REPL kullanmadan şu şekilde görünecektir f :: a -> [Int]
veri girişi gibi görünecektir düşünüyorum:
>> let namedPoint = NamedPoint "hey" 1 2
>> let tommy = Person "Tommy" 1 2 3
>> f namedPoint
>> [1,2]
>> f Tommy
>> [1,2,3]
Bunun gibi yararlı olacağını düşünüyorum Parametreler bir sürü veri için alıcılar yazmak için çok tembel olduğunuz zaman kayıtları için bir alternatif.
'' neden işlev 'f :: NamedPoint -> [Int]' 'olarak yazılmıyor? – zegkljan
Bu durumda olabilir. Ama bu davranışın genelleştirilmiş türleri ayıklamak için yararlı olabileceğini düşünüyordum. soruyu daha spesifik olmak için düzenledim. – user514156
Bu görev için, uniplate en basit seçimdir. F'iniz sadece evrenBi işlevidir. – augustss