6 Star 28 Fork 14

Julia语言程序设计 / bookexamples

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

《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

其他建议

The MIT License (MIT) Copyright (c) 2018 魏坤 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

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

Releases (2)

All

Contributors

All

Activities

Load More
can not load any more
Julia
1
https://gitee.com/juliaprog/bookexamples.git
git@gitee.com:juliaprog/bookexamples.git
juliaprog
bookexamples
bookexamples
master

Search