我一直在研究这个Haskell项目,我有一个cabal文件.现在,我的项目被构建为一个实现简单解释器的库.我还有一个非常短的主文件,需要构建成可执行文件来调用库.我想做的是:
1)编译库并公开一些模块
2)编译可执行文件
我有一个cabal文件,可以工作,似乎这样做.问题是当它编译可执行文件时,它会重新编译已经在步骤(1)中编译的所有模块.我不太明白为什么会这样做 - 有没有办法阻止它,没有创建两个单独的cabal文件?
我真的不想创建两个单独的cabal文件,因为cabal似乎不喜欢在同一目录中同时拥有cabal文件,我真的不想为第二步设置单独的项目目录,因为它基本上只是编译单个文件.
cabal-version: >= 1.6
build-type: Simple
name: HaSC
version: 0.2.3
license: OtherLicense
category: Language
author: Chris B
maintainer: Chris B
copyright: Chris B 2010 - 2011
synopsis: (HA)skell (S)ound (C)hange applier (HaSC) library
description: HaSC implements a little language for applying sound changes to words
homepage: http://www.chrisdb.me.uk/redmine/projects/haskell-sound-change
stability: Alpha
data-files: doc/HaSCDoc.pdf
license-file: LICENSE
library
build-depends:
base >= 4.3,
containers >= 0.3,
parsec >= 3,
parallel >= 3.1,
deepseq >= 1.1,
mtl >= …Run Code Online (Sandbox Code Playgroud) 我有一个Yesod表单,用于编辑一些静态页面的内容,这些页面使用markdown编写(使用Pandoc处理).我想要两个按钮 - 一个"预览"按钮,用于处理标记并在表单下方显示结果,还有一个"提交"按钮,用于将内容保存到数据库中.
使用Yesod执行此操作的最简单方法是什么?Yesod书中的所有表格示例都只有一个按钮.我已经看过暴露的函数/ api,但即使我在表单中添加了多个具有不同名称和/或值的提交按钮,我也无法弄清楚如何让Yesod告诉我哪个被按下了.
任何人都可以给我一个简单的例子,说明在Yesod中有一个以上按钮的表单会触发不同的操作吗?