3

我有一个有效的应用程序表单,但我想添加一个与模型中的任何字段都不对应的 textField。除了一个字段外,一切正常。我的模型的一部分是表示上传时间戳的 UTCTime 值。使用申请表格,我有以下代码:

-- some stuff
<*> aformM (liftIO getCurrentTime)
-- more stuff

而且我似乎找不到与 aformM 等效的单子形式。我尝试了以下方法:

(timeRes, timeView) <- mformM (liftIO getCurrentTime)

希望一元形式有一个等效的函数,类似于我们拥有 areq/mreq、aopt/mopt 等,但我的代码无法编译。所以,我的问题是:有没有办法使用单子形式获取当前时间戳?

4

1 回答 1

2

通常不需要显示更新时间戳,因此在 MForm monad 中,您只需选择值并将其添加到应用结果中。

   currentTime <- liftIO getCurrentTime

   (field1_Res, field1_View) <- mreq ...

   let  myRecord_Res = MyRecord <$> pure currentTime <*> field1_Res <*> field2_Res <*> ...
于 2013-04-26T11:46:32.943 回答