小编Chr*_*one的帖子

为什么GHC这么大/大?

有一个简单的答案:为什么GHC这么大?

  • OCaml:2MB
  • Python:15MB
  • SBCL:9MB
  • OpenJRE - 26MB
  • GHC:113MB

对于"如果Haskell是正确的工具,为什么我不应该关心大小"的传福音不感兴趣; 这是一个技术问题.

haskell ghc

145
推荐指数
6
解决办法
2万
查看次数

让GHC只进行型式检查?

有没有办法,无论是标准的还是聪明的黑客,在文件上调用GHC只运行类型检查器?例如

$ ghc --just-check-the-types x.hs
$
Run Code Online (Sandbox Code Playgroud)

没有输出文件,没有.hi或.o等.不想/不能使用GHC API.这里只是谈论命令行程序.

haskell ghc

34
推荐指数
2
解决办法
2034
查看次数

用Haskell播放一个wav文件

是否有一种简单,直接的方法从Haskell使用一些库播放WAV文件,并且可能一次播放很多声音?

我知道OpenAL,但我不是在写一些高级音频合成程序,我只是想播放一些声音来播放一些东西.理想情况下,API可能类似于:

readWavFile :: FilePath -> IO Wave
playWave :: Wave -> IO ()
playWaveNonBlocking :: Wave -> IO ()
Run Code Online (Sandbox Code Playgroud)

这个接近仅仅推出的mplayer什么的.或者试图将wav直接捕获到/ dev/snd /或某些东西.

audio haskell wav

23
推荐指数
2
解决办法
3492
查看次数

从PDF表单中提取PDF表单字段名称

我正在使用pdftk填写带有XFDF文件的PDF表单.但是,对于这个项目,我事先并不知道将出现哪些字段,因此我需要分析PDF本身以查看需要填写的字段,相应地向用户显示接口,然后从中生成XFDF文件填写PDF表格.

我如何获得字段名称?最好是命令行,.NET或PHP解决方案.

.net php pdf

22
推荐指数
4
解决办法
2万
查看次数

Emacs中的代码折叠

可能重复:
如何在emacs中实现代码折叠效果

Dreamweaver的一个出色功能是可以递归地代码折叠任何文本行!

这太棒了,我可以折叠任何文本或代码,无论语言如何.我使用现有系统; 我不会用一种语言编写编写良好的代码或代码等.大多数HTML与神知道什么混合在一起.折叠线使得了解了很多更容易和更快.遗憾的是,这是我在Dreamweaver中唯一喜欢的功能.

是否有类似目的的Emacs代码折叠?

emacs dreamweaver code-folding

13
推荐指数
2
解决办法
9784
查看次数

独立于编程语言的文档系统

是否有一个简单的文档系统,将通过使用注释指示为任何语言生成一些友好的,超链接的文档?这样的系统可以仅仅被给予正则表达式或模式以识别注释然后生成结构.

我打算写一个,但想到必须有一个.

documentation-generation

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

如何使用HJScript或HJavaScript创建数组文字?

在HJavaScript中有Array类型,但我看不到构建一个文字的方法,例如,将其转换为JS [1,2,3].new Array()如果我不需要,我不想创建一个然后将项目推入其中.

理想情况下,我正在追求类似的功能array :: [t] -> Array t.

我可以JConst用来实现array,但它似乎是一个应该是直截了当的东西.我也可以使用上面的create-and-push方法来实现array,但这也不是很好.

这是array推动; 不太好.

array :: [Exp a] -> JS (JArray a)
array xs = do
  arr <- new Array ()
  mapM_ (`push` arr) xs
  return arr
Run Code Online (Sandbox Code Playgroud)

javascript dsl haskell package

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

GHC编译进度信息

假设我的项目中有十个模块,GHC将重新编译第三个和第五个模块,我将看到如下内容:

[3 of 10] Compiling C      ( A.hs, dist/build/p/p/A.o )
[5 of 10] Compiling E      ( B.hs, dist/build/p/p/B.o )
Run Code Online (Sandbox Code Playgroud)

我不知道还有多少要编译.

如何让它显示编译过程的进度?

haskell ghc

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

使用 GMail API 静音

是否可以使用 GMail API 将消息静音?https://developers.google.com/gmail/api/

在 GMail 中,如果您搜索 label:mute,您会得到静音对话。如果我尝试应用标签 MUTE 或 MUTED 我会得到:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/gmail/v1/users/me/messages/14b37d9bb14bb521/modify?alt=json returned "Invalid label: mute">
Run Code Online (Sandbox Code Playgroud)

表明实际中没有真正的MUTE/MUTED标签。

静音是 GMail 最好的功能之一,没有这个功能,API 就显得毫无意义。

gmail-api

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

当输入超出预期长度时,为什么OS X上的fgets输出BELL(^ G,ascii:07)字符?

测试用例程序:

#include <stdio.h>
#define SIZE 1024
int main(int args,char *argv[]){
  char buf[SIZE];
  fgets(buf, SIZE, stdin);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

用法示例(即输入1024个x字符):

bash-3.2$ gcc read.c -o read
bash-3.2$ ./read
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
^G
Run Code Online (Sandbox Code Playgroud)

在OS X上,这会使终端发出蜂鸣声并等待.我可以再次击中RET并再次发出哔哔声.如果我在管道或Emacs的shell中运行它,我会看到^G正在输出的字符.

在我的Ubuntu VM上进行相同的精确调用,程序按预期完成(即读取1023个字节buf并将其终止).

这正在打断我正在尝试编写的程序(使用另一种语言,但使用下面的C库),它接受JSON行作为命令接口的一部分.所以问题是:如何在OS X中禁用此行为?是否有API调用将其关闭?环境变量可能?它太棒了.

c macos xcode

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

如何减少 GHC 类型错误消息的大小?

例如,

test/Spec.hs:42:18: error:
    • No instance for (genvalidity-0.8.0.0:Data.GenValidity.GenUnchecked
                         (Decl UnkindedType Identifier Location))
        arising from a use of ‘forAllUnchecked’
    • In the second argument of ‘it’, namely
        ‘(forAllUnchecked
            (\ decls
               -> shouldBe
                    (either
                       (const ())
                       (const ())
        ... 50 (literally) more lines ...
Run Code Online (Sandbox Code Playgroud)

太长了,我必须向上滚动我的终端/消息查看器才能看到发生了什么。我只需要行号和列。

是否有一个 GHC 标志让它输出这个?

test/Spec.hs:42:18: error:
    • No instance for (genvalidity-0.8.0.0:Data.GenValidity.GenUnchecked
                         (Decl UnkindedType Identifier Location))
        arising from a use of ‘forAllUnchecked’
Run Code Online (Sandbox Code Playgroud)

这给了我我需要的一切。

haskell

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

Postgresql - 如何在 Java 中将 bytea 转换为文本或字符串

我在 postgres 中有一个 bytea 列,我可以使用这样的语句来获得这种输出:

select encode(mycolumn,'escape') from personTable;
Run Code Online (Sandbox Code Playgroud)

并得到:

254\355\000?sr\000?java.util.HashMap??\332\301\303?`\321?\000?F\000
loadFactorI\000 thresholdxp?@\000\000\000\000\000?w?\000\000\000?\000\000\000?t\000?      
userIdt\000
USER2200000x
Run Code Online (Sandbox Code Playgroud)

我如何以纯文本形式看到它?它确实存储了一个 java.util.HashMap-

java postgresql serialization bytea

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