我最近听了Rich Hickey对软件工程广播的采访.在访谈期间,Rich提到Clojure的藏品是作为树木实施的.我希望用另一种语言实现持久性数据结构,并希望了解如何实现集合和Clojure的其他持久性数据结构.
在以下场景中,每个点的树会是什么样子?
创建集 {1 2 3}
建立联盟{1 2 3}和{4}
创建的差异{1 2 3 4}和{1}
我想了解如何产生的三组({1 2 3},{1 2 3 4},和{2 3 4})股权结构,而"删除"被如何处理.
我还想知道节点可能拥有的最大分支数.Rich在访谈中提到树木很浅,所以大概是分支因子大于2.
如果命令的输出不以a结尾\n,则后续的提示会立即显示:
$ echo -n hai
hai$
Run Code Online (Sandbox Code Playgroud)
我刚刚注意到一位同事的shell(zsh,它的价值)被配置为打印一个%(背景和前景颜色反转为强调),然后\n在这种情况下:
$ echo -n hai
hai%
$
Run Code Online (Sandbox Code Playgroud)
我也想这样做.我用Bash.这可能吗?如果是这样,我将添加到〜/ .bashrc中?
UPDATE
我花了几个小时了解gniourf_gniourf的解决方案是如何工作的.我将在这里分享我的发现,以防它们对其他人有用.
ESC[6n是用于访问光标位置的控制序列导入器(http://en.wikipedia.org/wiki/ANSI_escape_code).
\eecho在OS X上使用时,它不是ESC的有效表示形式(https://superuser.com/q/33914/176942).\033可以用来代替.
IFS是Bash的内部字段分隔符(http://tldp.org/LDP/abs/html/internalvariables.html#IFSREF).
read -sdR看起来像是速记read -s -d -R,但实际上"R"不是标志,它是(分隔符)选项的值-d.我决定写作read -s -d R以避免混淆.
双括号构造(( ... ))允许算术扩展和评估(http://tldp.org/LDP/abs/html/dblparens.html).
这是我的.bashrc中的相关片段:
set_prompt() {
# CSI 6n reports the cursor position as ESC[n;mR, where n is the row …Run Code Online (Sandbox Code Playgroud) 这种行为背后的理由是什么?
function f(x) {
console.log(arguments[0]);
x = 42;
console.log(arguments[0]);
}
f(1);
// => 1
// => 42
Run Code Online (Sandbox Code Playgroud)
也许这是一个真正的错误.ECMAScript规范的哪个部分定义了这种行为?
我是针对JavaScript和CoffeeScript 的doctest,快速和脏的doctests的作者.我想通过使用JavaScript解析器而不是正则表达式来查找注释来减少库的脏污.
输入:
!function() {
// > toUsername("Jesper Nøhr")
// "jespernhr"
var toUsername = function(text) {
return ('' + text).replace(/\W/g, '').toLowerCase()
}
}()
Run Code Online (Sandbox Code Playgroud)
输出:
!function() {
doctest.input(function() {
return toUsername("Jesper Nøhr")
});
doctest.output(4, function() {
return "jespernhr"
});
var toUsername = function(text) {
return ('' + text).replace(/\W/g, '').toLowerCase()
}
}()
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做.Acorn提供了一个walker,它接受一个节点类型和一个函数,并在每次遇到指定类型的节点时遍历调用该函数的树.这似乎很有希望,但不适用于评论.
使用Esprima我可以esprima.parse(input, {comment: true, loc: true}).comments用来获取评论,但我不知道如何更新树.
这些模块的存在表明Node没有附带等效命令:
假设我的PureScript代码中的用户记录具有以下类型:
{ id :: Number
, username :: String
, email :: Maybe String
, isActive :: Boolean
}
Run Code Online (Sandbox Code Playgroud)
CommonJS模块源自PureScript代码.导出的用户相关函数将从外部JavaScript代码调用.
在JavaScript代码中,"用户"可以表示为:
var alice = {id: 123, username: 'alice', email: 'alice@example.com', isActive: true};
Run Code Online (Sandbox Code Playgroud)
email可能是null:
var alice = {id: 123, username: 'alice', email: null, isActive: true};
Run Code Online (Sandbox Code Playgroud)
email 可省略:
var alice = {id: 123, username: 'alice', isActive: true};
Run Code Online (Sandbox Code Playgroud)
isActive可以省略,在这种情况下,假设true:
var alice = {id: 123, username: 'alice'};
Run Code Online (Sandbox Code Playgroud)
id 遗憾的是有时候是一个数字字符串:
var alice = {id: '123', username: 'alice'};
Run Code Online (Sandbox Code Playgroud)
上面的五个JavaScript表示是等效的,应该生成等效的PureScript记录.
如何编写一个带有JavaScript对象并返回用户记录的函数? …
我是第一次使用Xcode.我一直在关注一个教程,我完全被那些肯定微不足道的东西所困扰.我已将"菜单"从库中拖到我的"MainMenu.xib"窗口中.双击此菜单即可显示.

到目前为止没有麻烦.编辑这三个项目非常直观,删除项目也是如此.但是我怎么在这个菜单中添加一个项目呢?
我不知道是否可能,但我希望能够写出如下内容:
{% with var1 var2 var3 as some_list %}
{{ some_list|maximum }}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
从任意数量的模板变量和/或文字中动态创建列表似乎很有用,所以我希望我忽略了一些简单的事情.
但是,如果不这样做,我想知道如何创建一个接受任意数量参数的模板标签.(我玩过simple_tag,适用于接受固定数量参数的标签.)
我不想去创建解析器和子类化的麻烦,django.template.Node直到我确定没有更简单的解决方案.
更新:我的问题没有准确地传达我想要实现的目标.我希望匹配/foo,/foo/以及/foo/(例如/foo/asdf/jkl)下的任何内容,而不是具体的给定路径.最初的问题如下.
我想匹配以下路径:
/foo
/foo/bar
/foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
这些也应该有用:
/foo/ -> /foo
/foo/bar/ -> /foo/bar
/foo/bar/baz/ -> /foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
app.get('/foo/*', ...);
Run Code Online (Sandbox Code Playgroud)
但是,这种情况失败了/foo.我知道我可以提供正则表达式而不是字符串,但这肯定是一个常见的要求,所以我会惊讶地发现模式匹配的DSL不适应它.
我的团队使用私人npm注册表.我们在本地开发和部署到生产时从这个私有注册表安装包.但是,在部署到分段时,我们想从GitHub中取出.我认为这可以使用preinstall重写package.json的脚本来使用适当的git + ssh:// URL代替版本号,如果NODE_ENV = staging.
这似乎不起作用,可能是因为npm忽略了对package.json所做的更改(已经需要它).
也许我会以完全错误的方式解决这个问题.实现这一目标的推荐方法是什么?
node.js ×3
javascript ×2
bash ×1
clojure ×1
django ×1
ecmascript-5 ×1
express ×1
github ×1
httpserver ×1
immutability ×1
installation ×1
npm ×1
parsing ×1
prompt ×1
purescript ×1
routing ×1
shell ×1
xcode ×1