小编jim*_*myt的帖子

haskell和Unix shell脚本

是否有可能在unix shell脚本中使用haskell函数?

例如:

#!/bin/bash

...
var1=value
...

# use haskell function with input from shell variable var1
# and store the result into another shell variable var2

var2=haskellFunction $var1

...
Run Code Online (Sandbox Code Playgroud)

我想在shell脚本中使用变量作为haskell函数的参数和结果

提前致谢.

吉米

unix shell scripting haskell interaction

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

haskell - 解析/读取.pdf文件的内容

haskell有没有可能只解密.pdf文件,读入内容并返回一个字符串?而且,如果有的话,你能给我一个例子,例如:

...
import necessaryPackage
...
pdfParsing = ...
...
Run Code Online (Sandbox Code Playgroud)

提前致谢.

最诚挚的问候,吉米

pdf parsing haskell pdf-parsing ghc

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

haskell - 状态monad函数得到?

根据State Monad的get函数提出的一个问题:

如果我跑

runState get 1

我得到了结果

(1,1)

这对我来说没问题,因为get函数将结果值设置为状态,在这种情况下状态为1.因此,(1,1)是结果.好.

但是,如果我跑

runState(do {(a,b)< - get; return a})(False,0)

我得到了结果

(假,(假,0))

这个我不明白.

get函数将结果值设置为状态并保持状态不变.所以我期待的是这样的事情

((假,0),(假,0))

与此相同

runState(do {(a,b)< - get; return b})(False,0)

结果是

(0,(假,0))

如上所述,我不再理解这一点.

所以,如果你能解释我这个奇怪的结果,那将是非常好的.;)

提前致谢

最好的祝福,

吉米

monads haskell state-monad

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

haskell - 合格导入后的"模糊类型变量"

我有一点问题,以了解haskell中的错误消息.

例如:

import qualified Data.Map as M

test = M.empty
Run Code Online (Sandbox Code Playgroud)

此代码运行应该没有收到任何错误消息.

输出如下:

*Main> test

fromList []
Run Code Online (Sandbox Code Playgroud)

但如果我尝试这样的话

import qualified Data.Map as M

test = do print M.empty
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误消息

Ambiguous type variable `k0' in the constraint:
      (Show k0) arising from a use of `print'
    Probable fix: add a type signature that fixes these type variable(s)
    In a stmt of a 'do' block: print M.empty
    In the expression: do { print M.empty }
    In an equation for `test': test = do { …
Run Code Online (Sandbox Code Playgroud)

import haskell functional-programming qualified

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

没有实例(Show([(String,Int)] - > Int))

如果我正在使用lambda表达式,那么在生产规则中快速计算表达式的值是不行的.

例如这段代码

Exp   : let var '=' Exp in Exp  { \p -> $6 (($2,$4 p):p) }
      | Exp1                    { $1 }

Exp1  : Exp1 '+' Term           { \p -> $1 p + $3 p }
      | Exp1 '-' Term           { \p -> $1 p - $3 p }
      | Term                    { $1 }

Term  : Term '*' Factor         { \p -> $1 p * $3 p }
      | Term '/' Factor         { \p -> $1 p `div` $3 p …
Run Code Online (Sandbox Code Playgroud)

lambda parsing haskell happy

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