ich die folgende Funktion verwenden GUID zu generieren:Сaching die Ergebnisse der Funktion in Haskell
import Data.UUID as UV
import Data.UUID.V1 as UV1
generateUUID :: String
generateUUID = UV.toString $ fromJust $ unsafePerformIO UV1.nextUUID
Und ich die generateUUID
Elemente für die Schaffung von
createWidgetUI element uuid =
WidgetUI { wui_title = ""
, wui_id = uuid
, wui_attr_style = ""
, wui_attr_class = ""
, wui_styles = []
, wui_scripts = []
, wui_contents = []
, wui_children = []
, wui_element = element
}
wuiPanel :: UI WidgetUI
wuiPanel = do
return $ createWidgetUI elem uuid
where
uuid = generateUUID
elem = ContainerUI $ H.div
Wenn ich die Methode aufrufen, verwenden wuiPanel
mehrmals bekomme ich denselben UUID-Wert! Aber ich muss bei jedem Aufruf der Methode wuiPanel
Elemente mit unterschiedlichem UUID Wert bekommen. Ich kann nicht verstehen, wie man es umsetzt.
Es scheint, dass Sie die [UI Monade] verwenden (http://hackage.haskell.org/package/threepenny-gui-0.6.0.6/docs/Graphics-UI-Threepenny-Core.html#g:3) aus dem [Dreipenny-Paket] (http://hackage.haskell.org/package/threepenny-gui-0.6.0.6) - richtig? – ErikR
Ich habe keine Ahnung, was das OP verwendet - Sie haben wahrscheinlich recht. – chi
UI Monad nicht von Threepenny-Paket! Monad wird von mir 'data UI a = UI a' geschrieben. Und Instanz Functor, Applicativ, Monad für UI. – QSpider