我想做这样的事情:
getValue :: Element -> String
getValue x = do
v <- get UI.value x
v
但是,会引发错误;的预期类型get UI.value x
是,[String]
但实际类型是UI String
?
但是,如果我将类型签名更改为getValue :: Element -> UI String
,我的最后一个v
得到预期类型的错误,UI String
而它的实际类型是String
.
我正在尝试实现这样的事情:
myfunction window = do
words <- getElementsByClassName window "word"
let strs = map getValue words
既然不能说let strs = map (\x -> v <- get UI.value x) words
。
当我只有一个元素要处理时,我很好:
filename <- chooser # get UI.value
liftIO $ print filename
unless (null filename) $ do
prevRows <- getElementsByClassName w "row"
mapM_ delete prevRows
elems <- liftIO $ readJSON filename
mapM_ (element table # addRow) elems