1

私はこのようなことをしたい:

getValue :: Element -> String
getValue x = do
    v <- get UI.value x
    v

ただし、エラーがスローされます。の予想されるタイプはget UI.value xis です[String]が、実際のタイプはUI String?

しかし、型シグネチャを に変更すると、実際の型がであるのに、期待される型のエラーがgetValue :: Element -> UI String最後に発生します。vUI StringString

私はこのようなものを実装しようとしています:

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
4

1 に答える 1