我无法让这个导入在haskell中工作.
import Network.HTTP.Conduit
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我收到以下错误:
$ ghc Play.hs
Play.hs:1:8:
Could not find module `Network.HTTP.Conduit'
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)
如果我尝试在GHCI中加载文件,则会发生同样的错误.
我已通过cabal安装了最新版本的http-conduit.这是cabal的输出:
$ cabal -list http-conduit
* http-conduit
Synopsis: HTTP client package with conduit interface and HTTPS support.
Default available version: 1.8.2
Installed versions: 1.6.0.4, 1.8.2
Homepage: http://www.yesodweb.com/book/http-conduit
License: BSD3
* http-conduit-browser
Synopsis: Browser interface to the http-conduit package
Default available version: 1.6.3
Installed versions: 1.6.3
Homepage: https://github.com/exbb2/http-conduit-browser
License: BSD3
Run Code Online (Sandbox Code Playgroud)
如果它可能有所作为,我使用的是Ubuntu 12.04.
任何想法为什么这不会导入?
编辑:'ghc-pkg list'的输出:
$ …
Run Code Online (Sandbox Code Playgroud) 我正在Haskell中编写一个服务器,我想在断开连接后显式关闭客户端句柄.当我调用时hClose
,线程将阻塞,直到客户端关闭其句柄的一侧.有没有办法让它关闭而不会阻塞?
提前致谢!
我希望GHCI加载一个模块的编译对象代码,该模块在编译时明显快于无编译版本.当所有文件都在同一目录(没有模块层次结构)时,这很有效.但是,当文件位于模块层次结构中时,它们不起作用.
工作版MyFile.hs:
import Basic
import Histogram
Run Code Online (Sandbox Code Playgroud)
其中Basic.o和Histogram.o与MyFile.hs在同一目录中
不工作的版本MyFile.hs:
import Util.Basic
import Util.Histogram
Run Code Online (Sandbox Code Playgroud)
其中Basic.o和Histogram.o位于子目录Util中.使用此版本,我在加载MyFile.hs时得到以下内容:
[1 of 2] Compiling Util.Basic ( Util/Basic.hs, interpreted )
[2 of 2] Compiling Util.Histogram ( Util/Histogram.hs, interpreted )
Ok, modules loaded: Util.Basic, Util.Histogram.
Run Code Online (Sandbox Code Playgroud)
我希望能够在模块中组织我的代码,但仍然可以从使用编译的o文件中获益.
此外,应该注意的是,自编译o文件以来,源文件尚未更改.
编辑:以下是每个文件的内容:
MyFile.hs
import Util.Basic
import Util.Histogram
Run Code Online (Sandbox Code Playgroud)
UTIL/Basic.hs
module Util.Basic () where
Run Code Online (Sandbox Code Playgroud)
UTIL/Histogram.hs
module Util.Histogram () where
Run Code Online (Sandbox Code Playgroud)
文件/编译:
$:~/programming/haskell/example-error$ ls
MyFile.hs MyFile.hs~ Util
$:~/programming/haskell/example-error$ cd Util
$:~/programming/haskell/example-error/Util$ ls
Basic.hs Basic.hs~ Histogram.hs Histogram.hs~
$:~/programming/haskell/example-error/Util$ ghc *.hs
[1 of 2] Compiling Util.Histogram ( Histogram.hs, Histogram.o …
Run Code Online (Sandbox Code Playgroud) 我试图使用外部函数接口调用Haskell中的C文件的主函数.
主要功能是声明:
int main(void);
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚要告诉Haskell函数如何处理void类型.我无法修改C源代码.
任何帮助表示赞赏.
我正在尝试拥有一个UArray Int (Complex Double)
. 这个签名很好,但是当我尝试使用访问特定索引时,(!)
我收到错误。这是我尝试使用的代码:
test :: UArray Int (Complex Double) -> Complex Double
test arr = arr ! 0
Run Code Online (Sandbox Code Playgroud)
和我收到的错误:
No instance for (IArray UArray (Complex Double)) arising from a use of `!'
Possible fix:
add an instance declaration for (IArray UArray (Complex Double))
In the expression: arr ! 0
In an equation for `test': test arr = arr ! 0
Run Code Online (Sandbox Code Playgroud)
这适用于UArray Int Double
,我很好奇为什么这不适用于(复杂双精度)。先谢谢您的帮助。
我在这里使用Dropbox API for Java的1.6版本:https://www.dropbox.com/developers/core/sdks/java
我也在Eclipse 3.7中使用GWT 2.5.1
我有以下代码作为Java Applcation运行时有效:
DbxRequestConfig requestConfig = new DbxRequestConfig(type, locale);
DbxAppInfo appInfo = new DbxAppInfo(APP_ID, APP_SECRET);
DbxWebAuthNoRedirect webauth = new DbxWebAuthNoRedirect(requestConfig, appInfo);
String result = webauth.start();
System.out.println(result);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String code = reader.readLine();
webauth = new DbxWebAuthNoRedirect(requestConfig, appInfo);
DbxAuthFinish finish = webauth.finish(code);
DbxClient client = new DbxClient(requestConfig, finish.accessToken);
DbxAccountInfo info = client.getAccountInfo();
long total = info.quota.total;
long used = info.quota.normal;
System.out.println("total: " + total);
System.out.println("used: " + used); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Docker容器中安装软件包,但prepare
脚本未运行。
这是Dockerfile
复制问题的:
FROM ubuntu:18.04
# Replace shell with bash so we can source files to use npm
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get update && apt-get upgrade -y
RUN apt-get install wget git -y
RUN wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
RUN source ~/.nvm/nvm.sh; nvm install v10.12.0; nvm use v10.12.0
RUN mkdir -p /usr/app/
WORKDIR /usr/app/
RUN source ~/.nvm/nvm.sh; npm install jcollard/d3-ng2-service#jcollard/add-dist
Run Code Online (Sandbox Code Playgroud)
在尝试直接从github安装软件包之前,以上安装nvm
并切换到使用node v10.12.0
和,npm v6.4.1
然后会失败。
$ docker …
Run Code Online (Sandbox Code Playgroud) 我试图使用非常通用的UArrays编写函数.我想要类型签名:
myFunction :: a -> b -> ((UArray Int a), (UArray Int b))
Run Code Online (Sandbox Code Playgroud)
但是,a和b太笼统了.我希望他们成为可能的实例之一IArray UArray a
.是否有一些派生类型允许我指定这个?例如,如果Num是一个有效的实例,我可以这样做:
myFunction :: (Num a, Num b) => a -> b -> ((UArray Int a), (UArray Int b))
Run Code Online (Sandbox Code Playgroud)
我想做什么才有意义?
提前致谢!
haskell ×6
docker ×1
dropbox ×1
dropbox-api ×1
ffi ×1
ghc ×1
ghci ×1
gwt ×1
http ×1
http-conduit ×1
https ×1
java ×1
networking ×1
node.js ×1
npm ×1
npm-install ×1
npm-scripts ×1