2012-12-27 23 views
5

Yani, noktasına gidelim: böyleceHaskell - dizilerini bir listede Liste anlama (a, [a])

f :: Eq a => a -> [(a,[a])] -> [(a,[a])] 
f x list = [(a,[m]) | (a,[m]) <- list, x == a] 

:

f 1 [(1,[1])] = [(1,[1])] 

ama

f 1 [(1,[1,1])] = [] 

Neden böyle? Teşekkür ederiz!

(Ben acemi değilim, bu yüzden bir çok aptal bir soru, özür dilerim, ama gerçekten bir açıklama bulamıyorum) [1,1] desen [m] uymuyor çünkü var

cevap

9

. İkincisi, bir öğenin bir listesidir (bir tip isminin olması gerektiği yerde kullanılmadıkça). Haskell zaten çiftin ikinci elemanının bir liste olduğunu biliyor (list parametresine bakarak) ve bunu açıkça söylemenize gerek yok.

+0

Şimdi aklıma bir anım geldi! haha. Tam olarak, [m] bir elemanın listesi anlamına geliyor, şimdi anladım. Çok teşekkür ederim! = D – dehq

İlgili konular