我正在尝试使用ghc 7.0.4中的一些代码与7.4.1一起工作.
在我看来,从Snap moand内部访问IO的旧方式不再是类型检查.
在ghc 7.0.4中,记录的访问IO编译方式.
a :: Snap ()
a = liftIO fireTheMissiles
Run Code Online (Sandbox Code Playgroud)
http://hackage.haskell.org/packages/archive/snap-core/0.8.1/doc/html/Snap-Core.html
在GHC 7.4.1中,
No instance for (MonadIO Snap)
arising from a use of `liftIO'
Possible fix: add an instance declaration for (MonadIO Snap)
Run Code Online (Sandbox Code Playgroud)
我很好奇周围有什么吸引人的工作.
这可能是一个简单的问题,我在SO上看过类似的问题,但我仍然陷入困境.
我正在尝试进行HTTP调用以获取另一个博客的内容并将其显示在我的页面上.这比任何事情都更像是一种学习练习.
这是我的经纪人
blog :: App1Handler ()
blog = do
contents <- Requester.getUrl "http://someblog.com/"
heistLocal (bindString "contents" contents) . render $ "blog"
Run Code Online (Sandbox Code Playgroud)
Requester.getUrl具有签名getUrl :: String - > IO T.Text
我得到的错误是
src/Main.hs:50:15:
无法匹配期望的类型Handler App1 App1 t0' with actual typeIO T.Text'
在'getUrl'调用的返回类型中
'do'块的stmt:
contents < - getUrl"http:/ /someblog.com/"
在表达式中:
do {contents < - getUrl"http://someblog.com/";
heistLocal(bindString"contents"内容).渲染$"博客"}
从我收集的内容来看,我被困在IO monad中,它想要Handler App1 App1 t0类型.我试过在某些地方坚持使用liftIO,但我对此非常困惑.
谁能指出我正确的方向?
谢谢!
我开始开发一个应用程序(一些无聊的会计软件供内部使用),并决定将其设置为基于Web的,因为这可以一次性解决几个问题.
现在有几个用于Haskell的webframeworks可供选择(happstack,yesod和snap),我仍然开始感到痛苦,不得不处理HTML,CSS和非常聪明的有线JavaScript.
嗯.
那么我认为可能会尝试使用所有AJAX方式并在Cappuccino或SproutCore中执行UI .(SEO不是问题).
但是现在我真的不需要一个完整的Web框架,比如上面三个中的一个,一个可以提供JSON或XML包装的数据的HTTP服务器在理论上应该足够了.
现在还有一点可以使用这三者中的任何一个吗?
最重要的是这种方法的可行性如何?
半滑舌鳎
我有三个数据结构定义为这样的,其中S,LL,M,和Object,表示Set,ListLike,Map,和ByteString,分别为:
nouns :: IO [Object]
nouns = liftM LL.words $ B.readFile "nounlist.txt"
obj :: IO ObjectSet
obj = liftM S.fromList nouns
actions :: IO ActionMap
actions = do
n <- nouns
let l = foldl' (\z x -> (x,Sell):(x,Create):z) [] n
return $ M.fromList $
(\(x,y) -> ((x, Verb y []), Out (Verb y []) x)) <$> l
Run Code Online (Sandbox Code Playgroud)
现在我有一个函数将未评估的Set和Map绑定到变量a和o.一旦进入query …
multithreading haskell memory-management haskell-snap-framework
我正在使用snap框架和haskell来创建简单的Web应用程序.我想知道如何将列表呈现到网页,就像这样我有一个名字和姓氏的列表
[["firstName1","lastName1"],["firstName2","lastName2"],["firstName3","lastName3"]]
Run Code Online (Sandbox Code Playgroud)
我想在两列中显示这些信息,有什么可能的方法,我能够绑定单值信息并显示在网页上.
我是Haskell和Snap的新手,我想写一个简单的bug跟踪应用程序.我使用$ snap init它设置了Snap项目并且它可以工作.问题是我不知道如何进一步.
我想创建一个Tickets使用数据库存储错误报告的snaplet,并在我的主Web应用程序中使用该snaplet.
我阅读了有关snaplet的文档,但我无法弄清楚它们的源代码放在哪里(/snaplets我想在目录中?如果是这样,我该如何加载它们?).有人能指出我正确的方向吗?
有人可以解释默认快照项目模板中发生了什么吗?
--------------------------------------------------------------------------
-- | Handle login submit
handleLoginSubmit :: Handler App (AuthManager App) ()
handleLoginSubmit =
loginUser "login" "password" Nothing
(\_ -> handleLogin err) (redirect "/")
where
err = Just "Unknown user or password"
-- | Render login form
handleLogin :: Maybe T.Text -> Handler App (AuthManager App) ()
handleLogin authError = heistLocal (bindSplices errs) $ render "login"
where
errs = [("loginError", textSplice c) | c <- maybeToList authError]
| The application's routes.
routes :: [(ByteString, Handler App …Run Code Online (Sandbox Code Playgroud) 前言:OSX开发的新手.
cabal安装快照 - 这很好用.
当我键入snap到终端时没有任何反应.如何将我的快照路径导出到OSX中的$ PATH?
同样的事情发生在happstack和yesod ....这些都安装了
我想删除 vscode (因为 vscode 不会启动。没有错误消息)。
我在快照列表中找到了它,但它不会删除:
$ snap list | grep code
code 8795a988 20 stable vscode* classic
$ snap remove vscode
snap "vscode" is not installed
$ snap remove vscode*
snap "vscode*" is not installed
Run Code Online (Sandbox Code Playgroud)
我在这里阅读教程:https://www.howtogeek.com/252047/how-to-install-and-manage-snap-packages-on-ubuntu-16.04-lts/
我从这里得到 vscode: https: //code.visualstudio.com/#alt-downloads
我在 Ubuntu 18.04.2 上使用 snap 安装了 docker。
当我尝试启动 docker 时,它失败并显示以下错误日志。
2020-07-16T23:49:14Z docker.dockerd[932]: failed to start containerd: timeout waiting for containerd to start
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Main process exited, code=exited, status=1/FAILURE
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Failed with result 'exit-code'.
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Service hold-off time over, scheduling restart.
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Scheduled restart job, restart counter is at 68.
2020-07-16T23:49:14Z systemd[1]: Stopped Service for snap application docker.dockerd.
2020-07-16T23:49:14Z systemd[1]: Started Service for snap application docker.dockerd.
Run Code Online (Sandbox Code Playgroud)
它一遍又一遍地进入重新启动循环。我应该怎么做才能让 docker 重新工作?
我正在从事这个项目,以与Haskell保持联系并努力寻找简单的例子。
在这种情况下,我想要一个针对Snap的Web请求处理程序,该处理程序返回目录中的文件列表。
我相信我正在尝试使getDirectoryContents返回到Snap想要的Bytestring中。
我最困惑如何处理下一行中的返回值filenames <- getDirectoryContents "data":
import Control.Applicative
import Snap.Core
import Snap.Util.FileServe
import Snap.Http.Server
import System.Directory (getDirectoryContents)
main :: IO ()
main = quickHttpServe site
site :: Snap ()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "bar")
, ("echo/:echoparam", echoHandler)
, ("view_root_json_files", listRootFilesHandler)
] <|>
dir "static" (serveDirectory ".")
echoHandler :: Snap ()
echoHandler = do
param <- getParam "echoparam"
maybe (writeBS "must specify echo/param in URL") …Run Code Online (Sandbox Code Playgroud) 我需要为我的 Ionic 应用程序找到Android 可执行路径,我在 Ubuntu 中安装了带有snap 的Android ,在 Glances 结果中,我可以阅读:
PID 302 /snap/android-studio/84/android-studio/jre/bin/java -classpath
Run Code Online (Sandbox Code Playgroud)
但是这些文件夹是空的,命令行是:
npx cap 打开 android
我明白了:
[info] Opening Android project at /home/phobos/dev2/reactjs/iotabreact/android
[error] Unable to launch Android Studio. You must configure "linuxAndroidStudioPath" in your capacitor.config.json to point to the location of studio.sh, using JavaScript-escaped paths:
Example:
{
"linuxAndroidStudioPath": "/usr/local/android-studio/bin/studio.sh"
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助。