一些可以从IDE借来的东西.因此,我们的想法是在函数体内突出显示函数参数(以及可能的范围变量名).这是某些C的默认行为:
好吧,如果我把光标放在里面func
我希望看到参数foo
并bar
突出显示更好地遵循算法逻辑.请注意,类似命名的foo
in func2
不会变亮.虽然这个奢侈品可以省略......
使用本地范围的变量,我还希望本地初始化变量highlit:
vim
clojure
我问的是zipmap
构造的特殊性只是发现我显然做错了.所以我(map vector v u)
在这个过程中学到了很多.但在此案例之前,我曾使用过zipmap来完成(map vector ...)
工作.它是否有用,因为结果地图足够小,可以整理出来?
而对于实际问题:有什么用途zipmap
,以及如何/何时使用它.什么时候使用(map vector ...)
?
我原来的问题需要原始订单,所以映射任何东西都不是一个好主意.但基本上 - 除了结果对的顺序 - 这两种方法是等价的,因为seq
'd map变成了一系列向量.
(for [pair (map vector v (rest v))]
( ... )) ;do with (first pair) and (last pair)
(for [pair (zipmap v (rest v))]
( ... )) ;do with (first pair) and (last pair)
Run Code Online (Sandbox Code Playgroud) 我需要存根tempfile
并且StringIO
看起来很完美.只有这一切都失败了:
In [1]: from StringIO import StringIO
In [2]: with StringIO("foo") as f: f.read()
--> AttributeError: StringIO instance has no attribute '__exit__'
Run Code Online (Sandbox Code Playgroud)
提供固定信息而不是读取具有不确定内容的文件的常用方法是什么?
我认为切换枚举将是FreeMarker中非常基本的东西,所以我可以编写如下内容:
<!-- Doesn't work -->
Dear
<#switch gender>
<#case MALE>
sir
<#break>
<#case FEMALE>
madam
<#break>
<#default>
sir/madam
<#/switch>
Run Code Online (Sandbox Code Playgroud)
但似乎访问枚举是一个丑陋而复杂的问题.是否有一种正确,干净的方式来打开枚举值?我应该在模特中以不同方式存储它吗?
编写一个几乎包含Awk脚本的shell脚本.我想在awk部分中使用我的语法着色,所以我觉得必须有更好的方法将awk脚本嵌入bash而不仅仅引用脚本.
或者它是在单独的文件上开发awk并awk -f
在bash脚本中使用直到脚本完成的最佳方法?我想一直保持在一个文件中!
#!/bin/bash
awkscript='
BEGIN{
print "test"
}
{print $3}'
df | awk "$awkscript"
Run Code Online (Sandbox Code Playgroud)
这是引用方式,如果你问我,那很难看.这里有heredocs的机会吗?
我们都知道你可以将你常用的正则表达式编译成性能非常好的东西.但是这幕巫术背后发生了什么呢?
我想那里有一个有限状态自动机,但你必须比我更清楚.
zsh
很棒,但它的完成系统非常多样化.文档缺乏很好的例子.是否有用于完成特定应用程序的模板.完成将从文件中获取其匹配数据,由换行符分隔?
我尝试修改我的旧示例,将匹配数据"生效":
~ % cat .zsh/completers/_jazzup
#compdef jazz_up
_arguments "2: :(`mpc lsplaylists|sed -e 's# #\\\\ #g'`)"
Run Code Online (Sandbox Code Playgroud)
我可以cat my_file
在那里提供而不是mpc
调用等等但是有没有更优雅的方式来完成这个简单的任务?并且该完成具有特定于位置:您是否可以提供一个示例,其中zsh将在识别程序名称后的任何时刻尝试完成?
匹配数据将具有空格等等,完成应该逃避WS.例子:
Foo bar
Barbaric
Get it (42)
Run Code Online (Sandbox Code Playgroud)
现在,如果为命令配置完成Say
,我们应该从以下方面获得这种行为zsh
:
$ Say Fo<TAB>
$ Say Foo\ bar
$ Say Ge<TAB>
$ Say Get\ it\ \(42\)
Run Code Online (Sandbox Code Playgroud) 在Clojure [1]中编写惯用的函数代码,如何编写一个用空格分割字符串但保持引用短语完整的函数?快速解决方案当然是使用正则表达式,但如果没有它们,这应该是可能的.快速浏览一下似乎很难!我在命令式语言中写了类似的东西,但我想看看功能性的递归方法是如何工作的.
快速检查我们的功能应该做什么:
"Hello there!" -> ["Hello", "there!"]
"'A quoted phrase'" -> ["A quoted phrase"]
"'a' 'b' c d" -> ["a", "b", "c", "d"]
"'a b' 'c d'" -> ["a b", "c d"]
"Mid'dle 'quotes do not concern me'" -> ["Mid'dle", "quotes do not concern me"]
Run Code Online (Sandbox Code Playgroud)
我不介意引号之间的间距是否变化(因此可以先使用空格分割简单).
"'lots of spacing' there" -> ["lots of spacing", "there"] ;is ok to me
Run Code Online (Sandbox Code Playgroud)
[1]这个问题可以在一般水平上回答,但我想Clojure中的一种功能方法可以轻松地转换为Haskell,ML等.
我不是计划专家所以不确定我是否在这里使用正确的术语.让代码说明一切:
CSI> (define tree '(1 2 3 'Symb 4 5 6))
#<unspecified>
CSI> tree
(1 2 3 (quote Symb) 4 5 6)
CSI> (symbol? 'Symb)
#t
CSI> (map symbol? tree)
(#f #f #f #f #f #f #f)
Run Code Online (Sandbox Code Playgroud)
来自Clojure背景,我认为在Scheme中使用符号就像Clojure中的关键字一样.我应该通过嵌套列表结构并用函数调用替换符号.这是我的维度解决方案,它确实有效:
(define (print-track track attrs)
(apply fmt #t
(map (lambda (attr)
(cond
((symbol? attr) (get-attr attr track))
(else attr)))
attrs)))
Run Code Online (Sandbox Code Playgroud)
(symbol?)
线上方的空白区域是(list?)
有条件的,但这可能是错误的方法.
我正在使用Chicken Scheme.
vi编辑器没有响应ksh中的任何命令.
我试过q,ctrl + c,q !,没有回复.我必须在secureCrt上关闭连接并重新登录.
有谁知道原因和解决方案?