Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 根据数字用户输入构建反射dom小部件/事件的动态列表_Haskell_Monads_Reflex - Fatal编程技术网

Haskell 根据数字用户输入构建反射dom小部件/事件的动态列表

Haskell 根据数字用户输入构建反射dom小部件/事件的动态列表,haskell,monads,reflex,Haskell,Monads,Reflex,我试图创建一个动态的小部件列表,其中小部件的数量由用户输入的数值决定。此外,每个小部件返回一个单击事件。下面是我用来获取用户输入的内容: settings::MonadWidget t m=>m(动态t(可能是Int)) 然后我用它生成一个随机数生成器列表(这些是RandomGen的值这一事实并不重要。它们只用于每个元素的内容,不是元素的数量) split':RandomGen=>Int->g->[g] -- ... gs您的问题是simpleList采用dynamict[g]和(dynami

我试图创建一个动态的小部件列表,其中小部件的数量由用户输入的数值决定。此外,每个小部件返回一个单击事件。下面是我用来获取用户输入的内容:

settings::MonadWidget t m=>m(动态t(可能是Int))
然后我用它生成一个随机数生成器列表(这些是
RandomGen
的值这一事实并不重要。它们只用于每个元素的内容,不是元素的数量)

split':RandomGen=>Int->g->[g]
-- ...

gs您的问题是simpleList采用
dynamict[g]
(dynamictg->ma)
。但是,您的go是g->m(Event t MyType)。因此,您需要创建一个更好的围棋:

go2 :: (MonadWidget t m, RandomGen g) => Dynamic t g -> m (Event t MyType)
go2 gDyn = do
    mapped <- mapDyn go gDyn
    dyned <- dyn mapped
    held <- hold never dyned
    return (switch held)
go2::(MonadWidget t m,RandomGen g)=>Dynamic t g->m(Event t MyType)
go2-gDyn=do

映射很好,所以你的头是一个人工编译器,因为它工作得非常好。谢谢!马丁,你能解释一下dyn是从哪里来的吗?我在Haddock中找不到类似的东西在反射dom中找到它