Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

《Julia语言程序设计》示例代码

项目介绍

《Julia语言程序设计》书中的实例源码

环境说明

下载完成后,最好配置好环境变量,以便在系统自带的控制台中能够直接执行Julia命令。

执行方式

有两种,选择其一。

  • 在Windows的cmd或Linux/Mac的Shell中执行 julia <jl脚本的路径>
  • 在开启的Julia的REPL中,执行include(jl脚本的路径)

作者联系方式

本书勘误

1. 正文第9页,REPL的退出,应使用exit()命令,而不是quit()

  • 上下文:“当然,在学习或使用告一段落后,可在REPL中按下CTRL+D(^D)或者在提示符后输入quit()并回车,便会退出该环境,同时对话窗口会关闭。”
  • 感谢反馈者:Julia中文社区的 豆奶

2. 在讲述DateTime的一章中,关于Time,示例语句与执行结果不一致。给的是Time(1),结果得到00:00:00

3. 在DateTime章,“访问”一节中,Date的对象d,获得其类型时,书中给的是Base.Dates.Year,“Julia与科学计算”认为应该是Year

  • 前文“如果要获得 Period 类型的周期值对象,可使用相应函数的首字母大写版,代码如下”
  • 说明:这并不能说是一个错误,与代码使用Dates的方式有关。
  • 感谢反馈者:Julia与科学计算 https://mp.weixin.qq.com/s/TxSBhqm9yD3jtNvB9lWWOg

4. 在DateTime章,“访问”一节中,执行dump(d)之后,执行的t.instant,有误;而应该是d.instant

5. 在DateTime章,“周期舍入”一节中,在生成rtms对象时,语句执行不通,应为rtms = [round(DateTime(x, fmt), Second(1)) for x in tms]

  • 前文“能够按照指定的周期对给定的时间进行转换,将其对齐到指定周期的时间框架中。我们仍以上述的时间序列为例,为了方便,将时间放入一个数集中”
  • 感谢反馈者:Julia与科学计算 https://mp.weixin.qq.com/s/TxSBhqm9yD3jtNvB9lWWOg

6. 在4.1节算术运算符中,示例代码的x = Int64(12) 然后计算x / 2得到的却是6.5,有误,前面一句应改为x = Int64(13)

  • 前文“不过,在除法运算符中,斜杠的除号/与数学除号÷在对整数进行计算时,表现有着显著的差异”
  • 感谢反馈者:Julia中文社区 Da cainiao

7. 在8.8.4节自定义定位中,正文第204页,对s = (1,1,2,3,2,4,1)执行第二个findall时,代码应为findall(in(2),s),而不是findall(in(1),s)

  • 前文“该方法的第一个参数相当于匿名函数......”
  • 感谢反馈者:Julia中文社区 Da cainiao

8. 在数组一章,使用UniformScaling前,应提示using LinearAlgebra

  • 感谢反馈者:Julia中文社区 Da cainiao

9. 在2.2节,第21页,“所以通常IO操作是最为耗时的部分”语句顺序有问题,应该为“所以IO(Input/Output,输入输出)操作通常是最为耗时的部分。”。

  • 感谢反馈者:Julia语言程序设计读者群 cherichy

10. 在13.1.1节,第296页,第三自然段中,语句“如果运算符不仅有一个字符”应修改为“如果运算符有多个字符”。

  • 感谢反馈者:Julia语言程序设计读者群 Da cainiao

11. 在13.2节,第299页,“脚本包含”一节中,示例脚本中的display函数名因与内置函数重名,修改为mydisplay

  • 感谢反馈者:Julia语言程序设计读者群 Da cainiao

12. 在13.2节,第299页,“脚本包含”一节中,示例脚本part1.jl中的内容不应该是A = rand(3,3)而应该是A = [1 2; 3 4; 5 6]

  • 感谢反馈者:Julia语言程序设计读者群 Da cainiao

13. 在16.2.2节,第375页,“定义小而精的函数”一节中,“有着目前的作用域边界”应该修改为“有着明确的作用域边界”。

  • 感谢反馈者:Julia语言程序设计读者群 Da cainiao

14. 在16.2.2节,第375页,示例代码中的norm函数与内置函数重名,修改为mynorm,示例代码中共有三处需要修改。

  • 感谢反馈者:Julia语言程序设计读者群 Da cainiao

15. 在11章,第255页及第256页,示例代码首先应using Dates或者import Dates,最好能在示例代码中明确给出。

  • 感谢反馈者:Julia语言程序设计读者群 豆奶

16. 在3.3.3节,第35页,第三段“内置的nextfloat()与prefloat()函数可以分别获得某个浮点值的后继与前继浮点值。”,其中的prefloat应该修改为prevfloat,却了个字符v

  • 感谢反馈者:Julia语言程序设计读者群 幻华

17. 在介绍Channel的一章,脚本demo_mconsumer.jl中,应在n = n - 1中增加global标识:

@elapsed while n > 0
  # 打印消费者执行后的结果
  job_id, exec_time = take!(results) # 从结果通道中提取数据
  println("$job_id finished in $(round(exec_time, digits=2)) seconds")
  global n = n - 1 # 原书无 global,但 v1.0 后需要显式使用 global 
end
  • 感谢反馈者:Julia语言程序设计读者群 永遠の➹思い出

18. 在1.4节,第11页,文字“另外,Julia内置了大量的函数或常量。如果名称与它们相同,虽然语法规则上是允许的,但不会成功。”,描述不准确,不是不能成功而是在使用过后不能成功,如果在使用前就重载了是能成功的。这种规定有点不明所以,具体该句如何修改,待定。

  • 感谢反馈者:Julia语言程序设计读者群 幻华

19. 在6.7节,第97页,示例代码Union{} <: TypeVar(:T) <: Any无法执行成功,这是因为该句在v0.6中成功,但在适配1.0版时,没有及时更新掉。

  • 前文“如果在构造时,其中的参数lb与ub省略,则表示不限定类型的上下界,此时这两个参数分别默认为Any和Union{},即”
  • 感谢反馈者:Julia语言程序设计读者群 幻华

20. 在6.3节,第82页,示例代码subtypes(Signed)执行的结果应该为:

julia> subtypes(Signed)
6-element Array{Any,1}:
 BigInt
 Int128
 Int16
 Int32
 Int64
 Int8

类型发生了变化,而且成员内容中多了个BigInt

  • 前文“也可以时候用subtypes()获得某个类型的子类型列表,例如:”
  • 感谢反馈者:Julia语言程序设计读者群 幻华

21. 书中52页开头,对"m=50"取反后应该为-51而非-50(示例代码中给出的也是-50)

  • 感谢反馈者:ZhangYue

22. 书中56页结尾,运行代码"a>c" (# Int64(50)>Float32(2.5))结果应为true,而非书中给出的false

  • 感谢反馈者:ZhangYue

致谢

  • Julia中文社区 千凡 - 数据分析
  • Julia中文社区 Allphfa
  • Julia中文社区 豆奶
  • Julia中文社区 Da cainiao
  • Julia中文社区 cherichy
  • Julia中文社区 幻华
  • Julia语言程序设计读者群 永遠の➹思い出
  • Julia语言程序设计读者群 Zhangyue

其他建议

Comments ( 0 )

Sign in for post a comment

About

《Julia语言程序设计》书中的实例源码 spread retract
Cancel

Releases (2)

All

Contributors

All

Activities

load more
can not load any more