问题标签 [happstack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 尝试 happstack-tutorial 的问题
我一直在阅读有关 Happstack 的信息,并决定试一试。我正在运行 xubuntu 9.10 并进入教程中的此页面,该页面告诉我cabal install
在教程文件夹中进行操作。当我这样做时,我收到以下错误:
这是否告诉我某些包需要 <2 而其他包需要 >=2 ?
我尝试通过 apt-get 安装 1 和 2,但它不起作用。我得到同样的错误。如果有人可以提供建议,我将不胜感激。
haskell - 有没有 QuickCheck Happstack.State 方法的好方法?
我有一组 Happstack.State MACID 方法,我想使用 QuickCheck 进行测试,但我无法找出最优雅的方法来完成它。我遇到的问题是:
- 评估
Ev
monad 计算的唯一方法是在IO
monad 中通过query
orupdate
。 - 没有办法创建纯粹的内存 MACID 存储;这是设计使然。因此,在
IO
monad 中运行意味着每次测试后都有临时文件需要清理。 - 除了
initialValue
for 状态,没有办法初始化一个新的 MACID 存储;Arbitrary
除非我公开替换状态批发的访问方法,否则无法生成它。 - 解决上述所有问题意味着编写仅使用
MonadReader
or功能的方法(并在orMonadState
内部运行测试而不是. 这意味着放弃在方法定义中使用or等。Reader
State
Ev
getRandom
getEventClockTime
我能看到的唯一选择是:
- 在一次性磁盘 MACID 存储中运行这些方法,在每次测试后进行清理并从
initialValue
每次开始着手。 - 编写方法以使大部分代码在
MonadReader
or中运行MonadState
(这更容易测试),并根据需要在其周围使用少量非 QuickCheck-able 胶水来调用getRandom
orgetEventClockTime
。
有没有我忽略的更好的解决方案?
database - Happstack 状态概念和文档?
我开始制作 Haskell 网络服务器。我决定从 Happstack 和 Happstack-state 开始。而且我很难理解 Happstack-state 的概念和属性。它是一种新的数据库吗?还是只是像系统一样的对象图?
你能解释一下它的概念和属性(特别是关于 ACID,它是如何在磁盘上持久化数据的!)或者给我一个描述它的文档吗?
haskell - Haskell Web 框架
我正在使用 haskell 创建简单的 Web 应用程序。首先,我在前面使用了 Snap,我能够运行应用程序,但我想向应用程序添加用户输入。
我找不到将用户输入参数获取到函数的方法。我该怎么做?
其他的,我也使用了 Happstack 框架,我无法导入“Happstack.Server”。我使用 cabal 安装配置 Happstack。它已成功安装,但是当我尝试导入“Happstack.Server”时,它给了我一个错误:
如果我使用 运行我的程序ghc --make HelloWorld.hs -v
,我会得到:
haskell - Haskell/HappStack 中关于语法和类型签名的新手问题
为什么我做不到
但我能做到吗?
我是 Haskell 新手这是我在 GHCi 中一直在尝试的:
haskell - HappStack 中的 Haskell Monads msum
从
http://happstack.com/docs/crashcourse/HappstackState.html
当我运行服务器时,窥视计数器增加
- 1当我偷看
- 2 当我不偷看时
有问题的相关代码是:
但是,当我将其修改为
计数器增加
- 0 当我偷看
- 1 当我不偷看时
这是预期的行为吗?即使我偷看,感觉好像 msum 中的第二个 monad 正在“泄漏”。
haskell - 在 happstack 中使用 html 文件作为模板
我可以找到大量关于使用 blitz 和其他带有 happstack 的编译时模板库的文档,但我想知道如何使用 html 文件作为模板。
haskell - 有没有办法重构一些 Happstack 表单代码?
我正在尝试将 Happstack 教程中的 GET 和 POST 放入一个处理程序函数中,以便它始终在一起,我已经实现了这一点,但它看起来很难看。
我想改变的事情是:
明确地呼吁methodM GET
而不是让它成为失败者。拉出多余
ok $ toResponse
的,只在一个地方。最好也让 POST 返回 HTML。对于有更多经验的人来说,其他任何看起来“不正常”的东西。有任何想法吗?
更新:找出#1;添加do methodM GET
上面的ok $ toResponse $ ...
作品很好,但像我这样的新手需要注意的是必须垂直排列,即 m inmethodM
需要直接在 o in 上方ok
。希望这可以节省几个小时的挫败感。
更新 2:#3 相当简单——只需将 POST 的最后一行更新为ok $ toResponse $ html $ do B.body $ toHtml $ user ++ ...
haskell - 减少 happstack 教程代码中的冗余
happstack 教程提供了以下示例:
这里似乎ok $
是多余的——有没有办法把它拉出来,msum
这样你就不必写ok $
三遍了?我尝试了以下方法,但它甚至没有编译:
有没有正确的方法来做到这一点(或者甚至更好,拉出整个ok $ "You did a "
and ".\n"
),还是不可能?
我仍在了解 monads 在 Haskell 中的工作方式,但如果上述情况不可行,那么您能否从高层次上解释为什么没有合理的方法来完成这项工作,或者需要更改哪些内容让它成为可能?我只是想弄清楚在这里可以做什么和不能做什么。