gpt4 book ai didi

haskell - 这个准引用表达式有错误吗?

转载 作者:行者123 更新时间:2023-12-01 05:11:26 25 4
gpt4 key购买 nike

我正在尝试编译 some example code from Network.JMacroRPC.Snap :

module Main where
import Network.JMacroRPC.Snap
import Snap.Http.Server
import Snap.Core
import Language.Javascript.JMacro
import Control.Concurrent
import Control.Monad.Trans
import Network.JMacroRPC.Base
import Text.XHtml hiding(dir)
import qualified Data.Text as T

jsScript f = script (primHtml f) ! [thetype "text/javascript"]
jsScript' = jsScript . show . renderJs

testPage = mkConversationPageNoCulling pageFun (newMVar (1::Int)) jRpcs
where pageFun :: JStat -> Snap ()
pageFun js = writeText $ T.pack $ show $
(header << [script ! [src "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"] << noHtml]) +++
jsScript' js +++
jsScript' ([jmacro|$(\
{
var b = $("<button>click me!</button>");
$("body").append(b);
b.click(\ {
var c = getCounter();
alert ("counter is: " + c);
});
});
|]);
jRpcs = [getCounterRPC]
getCounterRPC =
toJsonConvRPC "getCounter" $ \s -> (liftIO $ retRight =<< modifyMVar s (\i -> return (i+1,i)) :: Snap (Either String Int))

retRight :: a -> IO (Either String a)
retRight = return . Right

main = quickHttpServe =<< testPage

我遇到了一个错误:
% cabal build                                                                                                                                                                                                                    
Building jmacro-snap-example-0.1.0.0...
Preprocessing executable 'jmacro-snap-example' for
jmacro-snap-example-0.1.0.0...
[1 of 1] Compiling Main ( Main.hs, dist/build/jmacro-snap-example/jmacro-snap-example-tmp/Main.o )

Main.hs:22:38: parse error on input `{'

所以看起来 ghc 的 jmacro 有问题准报价人
表达。我不确定这是因为代码中存在错误,还是
我是否在编译它时做错了什么。

我正在使用 ghc 7.6.3 和 cabal 1.20.0.1 与这个 cabal 文件:
name:                jmacro-snap-example
version: 0.1.0.0
build-type: Simple
cabal-version: >=1.10

executable jmacro-snap-example
main-is: Main.hs
other-extensions: TemplateHaskell
build-depends: base >=4.6 && <4.7, jmacro-rpc-snap >=0.3 && <0.4, snap-server >=0.9 && <0.10, snap-core >=0.9 && <0.10, jmacro >=0.6 && <0.7, mtl >=2.1 && <2.2, jmacro-rpc >=0.3 && <0.4, xhtml >=3000.2 && <3000.3, text >=0.11 && <0.12
default-language: Haskell2010

最佳答案

从阅读中想出来Quasiquotation大约什么时候Ørjan Johansen pointed it out to me - 我需要输入 {-# LANGUAGE QuasiQuotes #-}在示例代码的顶部。

它可以编译并且现在大部分都可以工作(服务器在响应页面时没有给出 Content-Type header ,这使得它在我的浏览器中看起来很不稳定),但除此之外,成功了。

关于haskell - 这个准引用表达式有错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com