小编Joe*_*Joe的帖子

Haskell无法找到模块`Network.HTTP.Conduit'

我无法让这个导入在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)

https networking haskell http http-conduit

6
推荐指数
1
解决办法
4734
查看次数

Haskell hClose阻塞

我正在Haskell中编写一个服务器,我想在断开连接后显式关闭客户端句柄.当我调用时hClose,线程将阻塞,直到客户端关闭其句柄的一侧.有没有办法让它关闭而不会阻塞?

提前致谢!

haskell

6
推荐指数
1
解决办法
179
查看次数

Haskell GHCI没有加载编译对象文件

我希望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 ghc ghci

3
推荐指数
1
解决办法
965
查看次数

你如何在Haskell中调用void C函数

我试图使用外部函数接口调用Haskell中的C文件的主函数.

主要功能是声明:

int main(void);
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚要告诉Haskell函数如何处理void类型.我无法修改C源代码.

任何帮助表示赞赏.

haskell ffi

3
推荐指数
1
解决办法
980
查看次数

在 Haskell 中创建 UArray Int(复数双精度)

我正在尝试拥有一个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,我很好奇为什么这不适用于(复杂双精度)。先谢谢您的帮助。

haskell complex-numbers

2
推荐指数
1
解决办法
509
查看次数

具有GWT身份验证问题的Dropbox Java API

我在这里使用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)

java gwt dropbox dropbox-api

2
推荐指数
1
解决办法
1897
查看次数

npm v6.4.1没有在docker中运行`prepare`

我正在尝试在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)

node.js npm docker npm-install npm-scripts

2
推荐指数
1
解决办法
1094
查看次数

Haskell UArray变量类型

我试图使用非常通用的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

1
推荐指数
1
解决办法
396
查看次数