小编Eri*_*and的帖子

在Haskell中,如何从字符串的开头和结尾修剪空格?

如何从字符串的开头和结尾修剪空格?

trim "  abc " 

=>

"abc"
Run Code Online (Sandbox Code Playgroud)

编辑:

好的,让我更清楚一点.我不明白字符串文字与字符串的处理方式如此不同.

我想这样做:

import qualified Data.Text as T
let s :: String = "  abc  "
in T.strip s
Run Code Online (Sandbox Code Playgroud)

这在Haskell有可能吗?我正在使用-XOverloadedStrings,但这似乎只适用于文字.

string haskell trim removing-whitespace

47
推荐指数
4
解决办法
3万
查看次数

如何设置leiningen以处理多个项目?

我有多个独立的莱宁根项目,表面上可能依赖于彼此.

例:

~/projects/mywebapp  (my own project)
~/projects/noir      (a clone of the github repo)
~/projects/clojureql (a clone of the github repo)
Run Code Online (Sandbox Code Playgroud)

我希望将它们全部编译到同一个JVM中.我想运行git repos前沿(拉动新提交/进行我自己的提交)而不必运行lein jar或lein deps,如果我更改任何项目,当然不必重新启动VM.

这是一个用例:

在运行lein swank之后,从emacs中,我连接到repl并从mywebapp(使用Cck)编译一个文件,这需要来自noir的文件.它在我的项目目录中找到该文件的版本.稍后,我打开该文件,编辑它并编译它(使用Cck).

请注意,当我执行git pull时,我不是要求自动编译.我只是不想重新启动JVM或进行冗长的jar编译过程.

在莱宁根这可能吗?我怎么设置它?

clojure leiningen

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

为什么Data.Text示例不适合我?

这是我在ghci中尝试做的事情:

import Data.Text
strip "  abc  "
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

<interactive>:1:6:
    Couldn't match expected type `Text' against inferred type `[Char]'
    In the first argument of `strip', namely `"  abc  "'
    In the expression: strip "  abc  "
    In the definition of `it': it = strip "  abc  "
Run Code Online (Sandbox Code Playgroud)

我期待这个工作,因为它是在许多网页上给出的,包括这个答案:在Haskell中,你如何从字符串的开头和结尾修剪空格?

我究竟做错了什么?

haskell

9
推荐指数
2
解决办法
2028
查看次数

你如何随机化Clojure中的列表?

给定seq,如何以随机顺序返回具有相同元素的seq?

clojure

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

从s表达式创建lambda

我有一个s-expression绑定到Common Lisp中的变量:

(defvar x '(+ a 2))
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个函数,在调用时,它会在定义它的范围内计算表达式.我试过这个:

(let ((a 4))
  (lambda () (eval x)))
Run Code Online (Sandbox Code Playgroud)

(let ((a 4))
  (eval `(lambda () ,x)))
Run Code Online (Sandbox Code Playgroud)

但这两个都会产生问题:EVAL会评估顶层的代码,因此我无法捕获表达式中包含的变量.请注意,我不能将LET表单放在EVAL中.有什么解决方案吗?

编辑:那么如果没有EVAL问题的解决方案,它还能怎样做呢?

编辑:有一个问题,我到底想要做什么.我正在编写一个编译器.我想接受一个s表达式,其中变量在定义表达式的词汇环境中关闭.将它写成宏可能确实更好.

lisp lambda closures eval common-lisp

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

使用SimpleDB实施防欺诈投票系统

我想实现一个投票系统,其中包含存储在Amazon SimpleDB中的所有数据.前端也在Amazon EC2上运行.我主要担心的是服务成本.

投票系统需要防欺诈.也就是说,每个访问者每次选举只允许一票,而且没有用户帐户.我考虑过为每次投票存储一个SimpleDB项目以及它来自的IP地址.然后,如果没有该ip /选举对的条目,我只会插入一个新的投票.

然而,这在存储和处理方面听起来非常昂贵.我必须检索所有投票以统计它们以显示最新结果.

我考虑的另一个选择是存储投票,只是偶尔将它们相加并缓存结果.但这仍然需要我存储所有的选票.

你有什么建议?

amazon-simpledb

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