Bir Integer
türü olarak bir liste uzunluğunu dönmeye çalışıyor ama length xs
döner bir Int
türü olarak uzunluğu Başvurduğum yerine Int tipi Tamsayı olarak bir liste uzunluğunu döndürmek için nasıl. Bu konuda nasıl çalışabilirim?Haskell
Bu benim ulaşmak için çalışıyorum budur: (çalışmıyor)
sizeList :: [Integer] -> Integer
sizeList xs = length xs
Ben sizeList :: [Integer] -> Int
dönüş değiştirmek ama bunu yapmak istemiyorum girmez çalışır.
Sebastian söylediği gibi 'genericLength' ile gitmek - ya da excercise olarak uzunluğunu reimplement: D – Carsten
bende sende de olsa bunun iyi bir fikir olup olmadığı konusunda umut? Genellikle, bu kadar uzun bir liste var bunu Int' 'in boyda sayamazsınız _possible_ değil - Neden olmak, bilgisayarın bellek temelde ints ile endeksli, bu nedenle yeterli belleğe sahip bir mimarlık genellikle ölçmek için yeterince büyük int'leri olacak herhangi bir liste. 64-bit platformunda, taşma kadar sayma [yaş alır] (http://www.wolframalpha.com/input/?i=2^64+%2F+3GHz) Neyse, sen sonsuz bir liste kullansanız bile. İşte bu yüzden standart 'length' fonksiyonu, IMO haklı olarak 'Int'' Integer' değil. – leftaroundabout
Ve 32 bit bulurlar üzerinde yaklaşık 1,4 saniye sürer, ancak bu noktada (2^32 * 8 bayt ~ 34TR) kullanacaktır. – Zeta