如何从字符串的开头和结尾修剪空格?
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,但这似乎只适用于文字.
我有多个独立的莱宁根项目,表面上可能依赖于彼此.
例:
~/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编译过程.
在莱宁根这可能吗?我怎么设置它?
这是我在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中,你如何从字符串的开头和结尾修剪空格?
我究竟做错了什么?
我有一个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表达式,其中变量在定义表达式的词汇环境中关闭.将它写成宏可能确实更好.
我想实现一个投票系统,其中包含存储在Amazon SimpleDB中的所有数据.前端也在Amazon EC2上运行.我主要担心的是服务成本.
投票系统需要防欺诈.也就是说,每个访问者每次选举只允许一票,而且没有用户帐户.我考虑过为每次投票存储一个SimpleDB项目以及它来自的IP地址.然后,如果没有该ip /选举对的条目,我只会插入一个新的投票.
然而,这在存储和处理方面听起来非常昂贵.我必须检索所有投票以统计它们以显示最新结果.
我考虑的另一个选择是存储投票,只是偶尔将它们相加并缓存结果.但这仍然需要我存储所有的选票.
你有什么建议?