在他们的arXiv论文中,Julia的原作者提到了以下内容:
2.14 Parallelism.并行执行由Julia在标准库中实现的基于消息的多处理系统提供.语言设计通过提供对称协程来支持这些库的实现,协同协程也可以被认为是协同调度的线程.此功能允许异步通信隐藏在库中,而不是要求用户设置回调.朱目前不支持本地线程,这是一种限制,但具有避免同步共享内存的使用的复杂性的优点.
他们说朱莉娅不支持原生线程是什么意思?什么是本机线程?
其他解释性语言(如Python或R)是否支持这种并行性?朱莉娅独自一人吗?
如何打开文本文件并逐行阅读?我对以下两种情况感兴趣:
对于第二种情况,我不想一次将所有行都保留在内存中。
这个片段来自Julia 中Rational Numbers的实现:
# Rational.jl
# ...
Rational{T<:Integer}(n::T, d::T) = Rational{T}(n,d)
Rational(n::Integer, d::Integer) = Rational(promote(n,d)...)
Rational(n::Integer) = Rational(n,one(n))
//(x::Rational, y::Integer) = x.num // (x.den*y) <--- HERE!
# ...
Run Code Online (Sandbox Code Playgroud)
查看//函数如何实现,然后与中缀表示法一起使用?这实际上如何返回一个值?
当我看到这段代码时,我解释如下:
//使用Rational和Integer调用该函数.#2真的让我很困惑.数据结构中的递归在哪里结束?//如果不断评估任何值,如何返回值?
请帮我理解这个.
我在 Julia 中有一段代码:
i = 1
while true
if i == 10
break
end
global i += 1 #A
for k = 1:1
println(i) #B
end
end
println(i)
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么global i += 1 #Awhile 循环内需要,但println(i) #Bfor 循环内不需要任何全局声明?
只有修改变量才需要全局声明吗?while 声明之后的语句if i == 10使用全局范围。
我使用过 Matlab,现在尝试将一些代码转换为 Julia。
% Load data in Matlab
fileID = fopen('./data_6000x3199.bin');
Data = fread(fileID,[6000,3199],'single');
fclose(fildID);
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何在 Julia 代码中读取这个单一类型的二进制文件。有人可以帮忙吗?
我知道 for 循环现在在 Julia 中是本地的。但是有一点我不明白。请考虑以下两个示例。
示例 1
a = 0
for i = 1:3
a += 1
end
Run Code Online (Sandbox Code Playgroud)
示例 2
a = [0]
for i = 1:3
a[1] += 1
end
Run Code Online (Sandbox Code Playgroud)
示例 1 抛出错误消息,我理解。但是示例 2 按预期工作。我该如何理解这一点?数组不是变量?有人可以向我解释一下吗?
主要问题:将项目插入已使用Julia排序的列表的最快方法是什么?
目前,我这样做:
v = [1, 2, 3, 5] #example list
x = 4 #value to insert
index = searchsortedfirst(v, x) #find index at which to insert x
insert!(v, index, x) #insert x at index
Run Code Online (Sandbox Code Playgroud)
奖金问题:如果我想同时确保没有重复怎么办?
我想在 Julia 中制作后勤地图,但遇到了困难。我已经知道如何在 Octave 中做到这一点,我怎么能把这段代码转给 Julia?我的难点主要在“map [i,:]”部分。
#Creates a vector of initial conditions and "r"
x=rand(150,1);
r=(2.51:.01:4);
#Transpose the r
r=r';
#Makes 300 times the product of each element of r for each element of x
for i=1:300
x=r.*x.*(1-x);
end
#Makes 200 times the product of each element of r for each element of x and stores each value of x on line i of the "map" matrix
for i=1:200
x=r.*x.*(1-x);
map(i,:)=x;
end
#Plots each column of the map for …Run Code Online (Sandbox Code Playgroud) 鉴于我有一些结构:
julia> struct Car
wheels::Int64
engine::Int64
model::String
end
Run Code Online (Sandbox Code Playgroud)
有没有办法创建一个新的结构并继承上面Car定义的属性(类似于面向对象编程中的类继承)?