相关疑难解决方法(0)

什么是lisp/scheme中的符号?

为了全能的爱,我还没有理解符号的目的'iamasymbol.我理解数字,布尔值,字符串...变量.但是符号对于我的小思维思维来说太过分了.我究竟用它做什么用的?它们应该如何在程序中使用?我对这个概念的把握只是失败了.

lisp scheme racket

38
推荐指数
5
解决办法
2万
查看次数

在什么意义上,像Elixir和Julia homoiconic这样的语言?

Lisp中的同质性很容易看出:

(+ 1 2)

既是函数调用+与1,2作为参数,以及作为含有一个列表+,1和2.它同时是代码和数据.

但是,像朱莉娅这样的语言:

1 + 2

我知道我们可以Expr在Julia中将其解析为:

:(1 + 2)

然后我们可以获得AST并操纵它:

julia> Meta.show_sexpr(:(1+2)) (:call, :+, 1, 2)

因此,我们可以在Julia(和Elixir)中操纵程序的AST.但它们是否与Lisp一样具有同音性 - 任何代码片段实际上只是语言本身的数据结构吗?

我不知道1 + 2Julia中的代码是如何立即像(+ 1 2)Lisp中的数据一样只是一个列表.它仍然是杀人的吗?

lisp homoiconicity julia

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

同性恋究竟是什么意思?

我试图理解关于同性恋的维基百科文章,但它太冗长,并没有简明扼要地解释这个词背后的主要理论.我应该补充一点,我不是母语为英语的人,所以我更喜欢简单的英语而不是学术白皮书.

那么,如果一种语言是同质的,那究竟是什么意思呢?是什么让C#,Java或JavaScript非同音?

theory programming-languages terminology homoiconicity

20
推荐指数
2
解决办法
1699
查看次数

宏和字符串插值(Julia)

假设我创建了这个简单的字符串宏

macro e_str(s)
    return string("I touched this: ",s)
end
Run Code Online (Sandbox Code Playgroud)

如果我将它应用于带插值的字符串,我会得到:

julia> e"foobar $(log(2))"
"I touched this: foobar \$(log(2))"
Run Code Online (Sandbox Code Playgroud)

而我想获得:

julia> e"foobar $(log(2))"
"I touched this: foobar 0.6931471805599453"
Run Code Online (Sandbox Code Playgroud)

我必须对我的宏声明做出哪些更改?

metaprogramming string-interpolation julia

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

在Julia中将变量名称另存为字符串

在朱莉娅0.4我有一个名为variablex的变量

in:   variablex  = 6
out:  6
in:   typeof(variablex)
out:  Int64
Run Code Online (Sandbox Code Playgroud)

我想将变量的名称保存为字符串,所以我想最终得到类似下面的变量'a'的东西,它将变量'variablex'的名称存储为字符串.

in:  a = Name(variablex)
out: variablex
in:  typeof(a)
out: ASCIIString
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我刚刚编写了函数'Name',它将变量的名称作为字符串返回.Julia中是否存在与上面的虚构示例函数"Name"相同的功能?

string macros julia

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

Julia DataFrame 列以数字开头?

这可能是一个愚蠢的问题,但对于我来说,我无法弄清楚如何让 Julia 读取列名以数字开头的 csv 文件并在 DataFrame 中使用它们。如何做到这一点?

例如,假设我有文件“test.csv”,其中包含以下内容:

,1Y,2Y,3Y
1Y,11,12,13
2Y,21,22,23
Run Code Online (Sandbox Code Playgroud)

如果我只使用 readtable(),我会得到:

julia> using DataFrames

julia> df = readtable("test.csv")
2x4 DataFrames.DataFrame
| Row | x    | x1Y | x2Y | x3Y |
|-----|------|-----|-----|-----|
| 1   | "1Y" | 11  | 12  | 13  |
| 2   | "2Y" | 21  | 22  | 23  |
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?如何使列名称成为应有的名称,“1Y”、“2Y”等?

julia

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