没有合适的资源?快使用搜索试试~ 我知道了~
首页julia-1.4.0.pdf
julia-1.4.0.pdf
需积分: 9 149 浏览量
更新于2023-05-30
评论
收藏 4.36MB PDF 举报
julia是计算机编译语言,Julia(茱莉亚)从一开始就为高性能而设计。Julia程序通过LLVM为多个平台编译成高效的本地代码。
资源详情
资源评论
资源推荐

The Julia Language
The Julia Project
March 22, 2020
Contents
Contents i
I Home 1
1 Julia 1.4 Documentation 3
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
II Julia v1.4 Release Notes 5
2 New language features 7
3 Language changes 9
4 Multi-threading changes 11
5 Build system changes 13
6 New library functions 15
7 New library features 17
8 Standard library changes 19
LinearAlgebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Markdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
REPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
SparseArrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
i

ii CONTENTS
III Manual 21
9 Getting Started 23
9.1 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10 Variables 27
10.1 Allowed Variable Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
10.2 Stylistic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
11 Integers and Floating-Point Numbers 31
11.1 Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Overow behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Division errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
11.2 Floating-Point Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Floating-point zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Special oating-point values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Machine epsilon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Rounding modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Background and References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11.3 Arbitrary Precision Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.4 Numeric Literal Coecients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Syntax Conicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.5 Literal zero and one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
12 Mathematical Operations and Elementary Functions 45
12.1 Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
12.2 Bitwise Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
12.3 Updating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
12.4 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
12.5 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Chaining comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Elementary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
12.6 Operator Precedence and Associativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
12.7 Numerical Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Rounding functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Division functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Sign and absolute value functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Powers, logs and roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Trigonometric and hyperbolic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Special functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
13 Complex and Rational Numbers 55
13.1 Complex Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
13.2 Rational Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
14 Strings 61
14.1 Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
14.2 String Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.3 Unicode and UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
14.4 Concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
14.5 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
14.6 Triple-Quoted String Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
14.7 Common Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

CONTENTS iii
14.8 Non-Standard String Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
14.9 Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
14.10Byte Array Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
14.11Version Number Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
14.12Raw String Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
15 Functions 81
15.1 Argument Passing Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
15.2 The return Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Return type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Returning nothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
15.3 Operators Are Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
15.4 Operators With Special Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
15.5 Anonymous Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
15.6 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
15.7 Named Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
15.8 Multiple Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
15.9 Argument destructuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
15.10Varargs Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
15.11Optional Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
15.12Keyword Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
15.13Evaluation Scope of Default Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
15.14Do-Block Syntax for Function Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
15.15Function composition and piping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
15.16Dot Syntax for Vectorizing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
15.17Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
16 Control Flow 97
16.1 Compound Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
16.2 Conditional Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
16.3 Short-Circuit Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
16.4 Repeated Evaluation: Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
16.5 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Built-in Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
The throw function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
The try/catch statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
finally Clauses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
16.6 Tasks (aka Coroutines) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Core task operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Tasks and events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Task states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
17 Scope of Variables 115
Scope constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
17.1 Global Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
17.2 Local Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Let Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
For Loops and Comprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
17.3 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
18 Types 125

iv CONTENTS
18.1 Type Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
18.2 Abstract Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
18.3 Primitive Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
18.4 Composite Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
18.5 Mutable Composite Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
18.6 Declared Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
18.7 Type Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
18.8 Parametric Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Parametric Composite Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Parametric Abstract Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Tuple Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Vararg Tuple Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Named Tuple Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Singleton Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Parametric Primitive Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
18.9 UnionAll Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
18.10Type Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
18.11Operations on Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
18.12Custom pretty-printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
18.13"Value types" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
19 Methods 149
19.1 Dening Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
19.2 Method Ambiguities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
19.3 Parametric Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
19.4 Redening Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
19.5 Design Patterns with Parametric Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Extracting the type parameter from a super-type . . . . . . . . . . . . . . . . . . . . . . . . . 157
Building a similar type with a dierent type parameter . . . . . . . . . . . . . . . . . . . . . . 158
Iterated dispatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Trait-based dispatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Output-type computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Separate convert and kernel logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
19.6 Parametrically-constrained Varargs methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
19.7 Note on Optional and keyword Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
19.8 Function-like objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
19.9 Empty generic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
19.10Method design and the avoidance of ambiguities . . . . . . . . . . . . . . . . . . . . . . . . . 163
Tuple and NTuple arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Orthogonalize your design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Dispatch on one argument at a time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Abstract containers and element types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Complex method "cascades" with default arguments . . . . . . . . . . . . . . . . . . . . . . . 165
20 Constructors 167
20.1 Outer Constructor Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
20.2 Inner Constructor Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
20.3 Incomplete Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
20.4 Parametric Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
20.5 Case Study: Rational . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
20.6 Outer-only constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

CONTENTS v
21 Conversion and Promotion 177
21.1 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
When is convert called? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Conversion vs. Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Dening New Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
21.2 Promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Dening Promotion Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Case Study: Rational Promotions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
22 Interfaces 185
22.1 Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
22.2 Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
22.3 Abstract Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
22.4 Strided Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
22.5 Customizing broadcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Broadcast Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Selecting an appropriate output array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Extending broadcast with custom implementations . . . . . . . . . . . . . . . . . . . . . . . . 195
Extending in-place broadcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Writing binary broadcasting rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
23 Modules 199
23.1 Summary of module usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Modules and les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Standard modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Default top-level denitions and bare modules . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Relative and absolute module paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Namespace miscellanea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Module initialization and precompilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
24 Documentation 207
24.1 Accessing Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
24.2 Functions & Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
24.3 Advanced Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Dynamic documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
24.4 Syntax Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
$ and \ characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Functions and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Multiple Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Macro-generated code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
25 Metaprogramming 217
25.1 Program representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
25.2 Expressions and evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Splatting interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
剩余1339页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0