2016-07-28 13 views
5

Girdi: [Just "foo", Just "bar", Nothing, Just "quux"]fromJust olmadan belkiler bir listeden değerler listesi ayıklanıyor

Çıktı: ["foo", "bar", "quux"]

o karaağaç çok taşınabilir değil çünkü fromJust kullanarak aşağıdaki çözüm memnun değilim ki güvensiz fonksiyonları sevmez: başka bir özlü/idioma

extract list = map fromJust $ filter isJust list

var mı Bunu başarmanın tik yolu?

+0

, bu List.filterMap identity' 'ile elde edilebilir – Delapouite

cevap

13

Sen catMaybes kullanabilirsiniz: karaağaç çeviri arayan pepole için

import Data.Maybe 
catMaybes list 
3
Λ: :m + Data.Maybe 
Λ: concatMap maybeToList [Just "foo", Just "bar", Nothing, Just "quux"] 
["foo","bar","quux"] 
İlgili konular