问题标签 [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.

0 投票
2 回答
473 浏览

haskell - 什么是 MACID?

我最近发现了HAppSHappstack项目,后者指出它的任务之一是“利用 MACID 的使用”。

MACID 到底是什么?

0 投票
2 回答
541 浏览

haskell - 尝试 happstack-tutorial 的问题

我一直在阅读有关 Happstack 的信息,并决定试一试。我正在运行 xubuntu 9.10 并进入教程中的此页面,该页面告诉我cabal install在教程文件夹中进行操作。当我这样做时,我收到以下错误:

这是否告诉我某些包需要 <2 而其他包需要 >=2 ?

我尝试通过 apt-get 安装 1 和 2,但它不起作用。我得到同样的错误。如果有人可以提供建议,我将不胜感激。

0 投票
2 回答
264 浏览

haskell - 有没有 QuickCheck Happstack.State 方法的好方法?

我有一组 Happstack.State MACID 方法,我想使用 QuickCheck 进行测试,但我无法找出最优雅的方法来完成它。我遇到的问题是:

  • 评估Evmonad 计算的唯一方法是在IOmonad 中通过queryor update
  • 没有办法创建纯粹的内存 MACID 存储;这是设计使然。因此,在IOmonad 中运行意味着每次测试后都有临时文件需要清理。
  • 除了initialValuefor 状态,没有办法初始化一个新的 MACID 存储;Arbitrary除非我公开替换状态批发的访问方法,否则无法生成它。
  • 解决上述所有问题意味着编写仅使用MonadReaderor功能的方法(并在orMonadState内部运行测试而不是. 这意味着放弃在方法定义中使用or等​​。ReaderStateEvgetRandomgetEventClockTime

我能看到的唯一选择是:

  • 在一次性磁盘 MACID 存储中运行这些方法,在每次测试后进行清理并从initialValue每次开始着手。
  • 编写方法以使大部分代码在MonadReaderor中运行MonadState(这更容易测试),并根据需要在其周围使用少量非 QuickCheck-able 胶水来调用getRandomor getEventClockTime

有没有我忽略的更好的解决方案?

0 投票
2 回答
650 浏览

database - Happstack 状态概念和文档?

我开始制作 Haskell 网络服务器。我决定从 Happstack 和 Happstack-state 开始。而且我很难理解 Happstack-state 的概念和属性。它是一种新的数据库吗?还是只是像系统一样的对象图?

你能解释一下它的概念和属性(特别是关于 ACID,它是如何在磁盘上持久化数据的!)或者给我一个描述它的文档吗?

0 投票
3 回答
2814 浏览

haskell - Haskell Web 框架

我正在使用 haskell 创建简单的 Web 应用程序。首先,我在前面使用了 Snap,我能够运行应用程序,但我想向应用程序添加用户输入。
我找不到将用户输入参数获取到函数的方法。我该怎么做?

其他的,我也使用了 Happstack 框架,我无法导入“Happstack.Server”。我使用 cabal 安装配置 Happstack。它已成功安装,但是当我尝试导入“Happstack.Server”时,它给了我一个错误:

如果我使用 运行我的程序ghc --make HelloWorld.hs -v,我会得到:

0 投票
1 回答
207 浏览

haskell - Haskell/HappStack 中关于语法和类型签名的新手问题

为什么我做不到

但我能做到吗?

我是 Haskell 新手这是我在 GHCi 中一直在尝试的:

0 投票
1 回答
638 浏览

haskell - HappStack 中的 Haskell Monads msum

http://happstack.com/docs/crashcourse/HappstackState.html

当我运行服务器时,窥视计数器增加

  • 1当我偷看
  • 2 当我不偷看时

有问题的相关代码是:

但是,当我将其修改为

计数器增加

  • 0 当我偷看
  • 1 当我不偷看时

这是预期的行为吗?即使我偷看,感觉好像 msum 中的第二个 monad 正在“泄漏”。

0 投票
2 回答
351 浏览

haskell - 在 happstack 中使用 html 文件作为模板

我可以找到大量关于使用 blitz 和其他带有 happstack 的编译时模板库的文档,但我想知道如何使用 html 文件作为模板。

0 投票
1 回答
207 浏览

haskell - 有没有办法重构一些 Happstack 表单代码?

我正在尝试将 Happstack 教程中的 GET 和 POST 放入一个处理程序函数中,以便它始终在一起,我已经实现了这一点,但它看起来很难看。

我想改变的事情是:

  1. 明确地呼吁methodM GET而不是让它成为失败者。

  2. 拉出多余ok $ toResponse的,只在一个地方。

  3. 最好也让 POST 返回 HTML。

  4. 对于有更多经验的人来说,其他任何看起来“不正常”的东西。有任何想法吗?

更新:找出#1;添加do methodM GET上面的ok $ toResponse $ ...作品很好,但像我这样的新手需要注意的是必须垂直排列,即 m inmethodM需要直接在 o in 上方ok。希望这可以节省几个小时的挫败感。

更新 2:#3 相当简单——只需将 POST 的最后一行更新为ok $ toResponse $ html $ do B.body $ toHtml $ user ++ ...

0 投票
2 回答
269 浏览

haskell - 减少 happstack 教程代码中的冗余

happstack 教程提供了以下示例:

这里似乎ok $是多余的——有没有办法把它拉出来,msum这样你就不必写ok $三遍了?我尝试了以下方法,但它甚至没有编译:

有没有正确的方法来做到这一点(或者甚至更好,拉出整个ok $ "You did a "and ".\n"),还是不可能?

我仍在了解 monads 在 Haskell 中的工作方式,但如果上述情况不可行,那么您能否从高层次上解释为什么没有合理的方法来完成这项工作,或者需要更改哪些内容让它成为可能?我只是想弄清楚在这里可以做什么和不能做什么。