kb
17.10.2012 13:40 04a3831c
Ну, то есть, чтоб быть более конкретным. Вот этот код поиска по ключу в списке вида [("key1", "val1"), ("key2", "val2")]
findKey :: (Eq k) => k → [(k,v)] → Maybe v
findKey key = foldr (\(k,v) acc → if key == k then Just v else acc) Nothing
Будет работать эффективно (если вы будете делать findKey key1, то вычислится только нужный кусок и работать будет мгновенно).
p.s.: спасибо SICP :)