我在Java中的冒险经历让我看到Clojure,然后引导我(重新)发现Emacs并引导我进入SLIME.
我对Emacs本身有一个相当不错的处理,我有emacs-starter-kit以及clojure-mode/slime/swank以及一些其他不相关的模式和调整设置和运行.
但是建立一个程序并理解它的功能并不相同.所以现在在我回到Clojure实验之前,我想先了解一下Slime IDE本身以及它能做些什么.
任何人都可以推荐一个教程/截屏,它会教我一些基本的Slime用法吗?我已经熟悉与Slime以交互方式执行Clojure,但肯定不能成为Slime的唯一功能.
本教程不需要涉及Clojure,但如果确实如此,那将是一个加分,但我感兴趣的主要焦点是Slime,所以请不要发布Clojure教程,除非他们突出显示Slime的用法,而不仅仅是交互式地执行Clojure代码.
数学技能变得越来越重要,我想知道在继续学习更多CompSci特定内容之前,在哪些地方可以了解一些基础知识?
一个有很多视频和练习练习的网站将是双赢,但我似乎无法找到一个.
我正在使用"ExuberantCtags",也被称为"ctags -e",也被称为"etags"
我试图理解由etags命令生成的TAGS文件格式,特别是我想了解TAGS文件的第2行.
维基百科说第2行描述如下:
{src_file},{size_of_tag_definition_data_in_bytes}
Run Code Online (Sandbox Code Playgroud)
实际上虽然TAGS文件行:2为"foo.c"看起来像这样
foo.c,1683
Run Code Online (Sandbox Code Playgroud)
我的窘境是它究竟是如何找到这个数字的:1683
我知道它是"tag_definition"的大小所以我想知道的是什么是"tag_definition"?
我试过通过ctags源代码查看,但也许在C比我更好的人会有更多的成功来解决这个问题.
谢谢!
编辑#2:
^L^J
hello.c,79^J
float foo (float x) {^?foo^A3,20^J
float bar () {^?bar^A7,59^J
int main() {^?main^A11,91^J
Run Code Online (Sandbox Code Playgroud)
好吧,如果我理解正确,"79"指的是TAGS文件中从79下降到包括"91 ^ J"的字节数.
有一个完美的感觉.
现在维基百科这个例子中的数字20,59,91表示引用{byte_offset}
什么是{byte_offset}偏移量?
谢谢你们所有的帮助!
例如:这里我用var声明一个变量,然后尝试删除它并失败.
var derp = "foo";
\> "foo"
derp;
\> "foo"
this.derp;
\> "foo"
delete derp;
\> false
derp;
\> "foo"
Run Code Online (Sandbox Code Playgroud)
但是,如果我创建一个没有var的变量,那么我就能成功删除它.
perd = "boo";
\> "boo"
this.perd;
\> "boo"
delete perd;
\> true
perd;
\> undefined
Run Code Online (Sandbox Code Playgroud)
任何人都可以为我解释这种行为吗?我确信有一些原因.
我决定尝试通过MIT SICP课程,但是在Javascript中.
以下代码输出undefined,但它应该输出相当准确的5的平方根猜测.
我已经测试了所有较小的函数,它们都按预期工作,问题必须在递归guessRoot()函数中的某个地方,但我似乎无法看到问题.
var square = function(x) {
return x * x;
};
var abs = function(x) {
return x > 0 ? x : -x;
};
var goodEnough = function(g, x) {
return abs(square(g) - x) < 0.01;
};
var average = function(x, y) {
return (x + y) / 2;
};
var improve = function(g, x) {
return average(g, (x / g));
};
var guessRoot = function(guess, x) {
if (goodEnough(guess, x)) {
return guess;
} else …
Run Code Online (Sandbox Code Playgroud) 我似乎无法找到有关haskells布局功能的更多信息,因为据我所知,它类似于pythons格式化要求,除了它是可选的.如何选择不正确使用此选项?从没有它开始是一个好主意,以便我对语言本身有一个坚实的感觉?