私はこのようなことをしたい:
getValue :: Element -> String
getValue x = do
v <- get UI.value x
v
ただし、エラーがスローされます。の予想されるタイプはget UI.value x
is です[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
。
処理する要素が 1 つしかない場合は、問題ありません。
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