是否有可能在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
...
我想在shell脚本中使用变量作为Haskell函数的参数和结果
预先感谢。
吉米
使用-e
开关到ghc
,例如
var2=$(ghc -e "let f x = x*x + x/2 in f $var1")
对于字符串处理,最好将Haskell的interact
与Bash's Strings结合使用:
var2=$(ghc -e 'interact reverse' <<<$var1)
另外,您可以使用ghci
:只需将Shebang #!/usr/bin/env runhaskell
放在脚本的第一行,然后使其可执行。这样的脚本可以像往常一样从sh/bash/ksh/csh/whatever
脚本调用。
,例如
$ cat > hello.hsh
#!/usr/bin/env runhaskell
main = putStrLn "Hello world!"
$ chmod +x hello.hsh
$ ./hello.hsh
Hello world!
$