SlideShare a Scribd company logo
1 of 60
Julia’s type system and
multiple dispatch
杜岳華
Julia Taiwan 發起人
Type
 Everything in Julia is an object.
 An object has its own type.
Type Declaration
 Type is similar to class in object-oriented
programming.
 But it has more meanings……
Type Declaration
 Concrete type
type Dog
name::AbstractString
color::AbstractString
end
dog = Dog(“Tom”, “brown”)
Name: Tom
Color: brown
Type Declaration
 Abstract type
abstract Animal
Julia's type
abstract Animal type Dog <: Animal
name::AbstractString
color::AbstractString
end
More similar to struct in C
instead of class in OOP.
You cannot declare any
fields in it.
Type Hierarchy
Ref:https://en.wikibooks.org/wiki/Introducing_Julia/Types
Type Hierarchy
Type System
 動態的,但擁有一些靜態型別系統的優點
 函式參數不加上型別,參數會被設成Any,加上型別
可以增加效能跟系統的穩健性
 參數化型別可以實現generic type
 型別系統是以階層式(hierarchical)架構建立的,
明確描述型別之間的關係
Type System
Tuple
Union
Algebraic type
 Tuple
 (1, 2, 3)
 immutable
 Union
 Union{Integer, AbstractString}
 I don't figure out the key scenario to use it……
The "nothing"
 The singleton of type Void, the only object belongs
to the type Void.
 While function does not return, it returns nothing!
Union{Integer, Void}?
 No! Nullable!
 Sometimes, you are not sure a function gives a
result, then you can use Nullable.
However…
 Single inheritance
 Abstract types cannot be instantiated.
 Concrete types cannot be inherited.
 So concrete type can only be the leaf in the
hierarchy.
http://www.quickmeme.com/meme/36b
esu
It cannot be reused!
 The major reason to use object-oriented programming
is reusability.
 However……
 Behaviors are not inherited.
 Fields are not inherited.
 It cannot be reused!!
Hopefully, we have……
 Parametric type
 Multiple dispatch
Parametric type
 The generic programming of Julia
 It help draw out the type of fields.
 Flexibility and constraints
type Coordinate{T <: Integer}
x::T
y::T
end
Before talking about multiple
dispatch…
 Let's review polymorphism!
Polymorphism
 Dog and Cat have voice.
 But their voices are different!
 Subclass繼承superclass的method,
method會依據不同的subclass有不同
的行為
Animal
Dog Cat
Polymorphism
 polymorphism不只是單單放在物件導向的繼承上,只要
符合同樣的function會依據不同型別而有不同行為就算
 若是依據維基百科的定義:
 Polymorphism is the provision of a single interface to
entities of different types.
 多型為不同型別的實體提供了單一介面
 C++的函式多載(function overloading)跟運算子多載
(operator overloading)
Ad hoc polymorphism
 依據傳入參數的型別組合,決定要使用哪一個
function,而為不同參數的型別組合定義不同行為是
特設的,而不是源自於內建的型別系統
 E.g. Function overloading, operator overloading
 operator overloading其實是function overloading的
特例!
 𝑓 𝑡𝑦𝑝𝑒1 𝑎1, 𝑡𝑦𝑝𝑒2 𝑎2, 𝑡𝑦𝑝𝑒3 𝑎3 . . .
 1 + 2 ≡ +(1, 2) ≡ 𝑎𝑑𝑑(1, 2)
Parametric polymorphism
 parametric polymorphism提供一種行為框架,直接
定義一個function,然後依據傳入的型別做操作
 E.g. C++的template (但是他定義的是data type而不是
function)
 泛型(generic programming),就是parametric
polymorphism的一種表現方式
 在其他語言中generic functions
Subtyping
 The type of polymorphism in OOP.
 Subclass 繼承了superclass的method介面,但是實
作是依據subclass的method內容
 我們通常把subclass當成superclass的子型別
(subtype)
Multiple dispatch
 It deals with “how to choose a function?”
double
double
args
Single dispatch
 or dynamic dispatch
Python code
class Foo:
...
def double(x):
return 2*x
class Bar:
...
def double(x):
return str(x)*2
double
double
args
Foo
Bar
Back to multiple dispatch
Julia code
function double(obj::Foo, x)
return 2*x
end
function double(obj::Bar, x)
return string(x)*2
end
double
double
args
(obj::Foo, x::Any)
(obj::Bar, x::Any)
You can add/override them easily.
function double(obj::Foo, x)
return 2*x
end
function double(obj::Bar, x)
return string(x)*2
end
Open-close
principle
function double(obj::Bar, x)
return “2”*x
end
Parametric method
 Generic function
function compare{T <: Real}(x::T, y::T)
if x > y
return 1
elseif x == y
return 0
else
return -1
end
end
Parametric method
 聰明的設計讓multiple dispatch替你"回答問題"
same_type{T}(x::T, y::T) = true
same_type(x, y) = false
same_type(1, 2) # true
same_type(1, 2.0) # false
避免模糊語意
g(x::Float64, y) = 2x + y
g(x, y::Float64) = x + 2y
g(x::Float64, y::Any) = 2x + y
g(x::Any, y::Float64) = x + 2y
從精確到廣泛是個好順序
g(x::Float64, y::Float64) = 2x + 2y
g(x::Float64, y) = 2x + y
g(x, y::Float64) = x + 2y
g(2.0, 3) # 7.0
g(2, 3.0+) # 8.0
g(2.0, 3.0) # 10.0
Constructors
 要建構一個object,constructor是少不了的
 There are 2 major kinds of constructor:
 Inner constructor
 Outer constructor
Outer constructor
 顧名思義,這是一個定義在型別定義之外的
constructor,他跟一般的method沒什麼不同
type Foo
bar
baz
End
Foo(x) = Foo(x,x)
Foo() = Foo(0)
Foo(2) # Foo(2, 2)
Foo() # Foo(0, 0)
Outer constructor
 你可以很簡單的在型別宣告之外加上很多不同的
constructor,如同其他語言的constructor
overloading一般
 擴充功能的時候很好用
Inner constructor
 inner constructor,只能有一個
 使用`new`是inner constructor的特權
type OrderedPair
x::Real
y::Real
OrderedPair(x, y) = x > y ? error("out
of order") : new(x, y)
end
Outer and inner constructor
Inner
Outer OuterOuter
Parametric Constructors
 Constructor can be parametric!
type Point{T<:Real}
x::T
y::T
end
type Point{T<:Real}
x::T
y::T
Point(x, y) = new(x, y)
end
Point{T<:Real}(x::T, y::T)
= Point{T}(x, y)
=
Break!
 Next, the OOP in Julia!
OOP in Julia
 先來複習一下:
 Encapsulation (封裝): 定義fields跟methods,甚至存取權
限
 Inheritance (繼承): 組織類別之間的關係,以便重用
 Polymorphism (多型): 使可以同樣的methods根據不同的
類別展現出不同的行為
Julia的哲學
 Polymorphism
 Multiple dispatch佔了重要的角色
 解耦子型別繼承了不想要的方法
 Inheritance
 Julia的型別系統佔了重要的角色
 只描述型別之間關係,而非實作
 Encapsulation
 若是中介的隱私狀態是不需要的,那封裝也是不需要的!
以往OOP方式
 Subtyping + single dispatch
 E.g. C++, Java, Python……
但是subtyping通常會有個問題……
 當inheritance發生的時候,superclass的行為都會被
subclass繼承,如此一來,確認superclass跟
subclass的關係就需要無比精確,不然subclass就會
繼承到不必要的行為
 有些語言設法將method綁定在class上的作法打破,
像是Swift、Scala或Rust,用trait
精巧設計
 Parametric polymorphism + multiple dispatch
 E.g. Julia, Common Lisp (?)
 Subtyping
 面對一個類別並定義他的行為
 Julia
 希望你在定義行為的時候考慮到整個type hierarchy,你需要對
某群 (特定範圍)的type定義行為
 善用泛型,讓你在定義行為的時候可以收放自如
OOP in Julia style
abstract Animal
immutable Dog <: Animal
color::AbstractString
species::AbstractString
end
immutable Cat <: Animal
color::AbstractString
species::AbstractString
end
OOP in Julia style
function color(a::Animal)
return a.color
end
function voice(d::Dog)
return "bark"
end
function voice(c::Cat)
return "meow"
end
OOP in Julia style
d1 = Dog("yellow", "Labrador")
voice(d1) # "bark“
c1 = Cat("brown", "?")
voice(c1) # "meow"
OOP in traditional style
type Foo
bar::Int64
baz::Function
function Foo(x::Int64)
this = new()
this.bar = x
function baz(input::AbstractString)
println(input)
end
function baz(input::Int64)
println(input * 10)
end
this.baz = baz
return this
end
end
OOP in traditional style
foo = Foo(10)
foo.bar # 10
foo.baz("Hello world!") # Hello world!
foo.baz(5) # 50
Julia’s object vs OOP
In software engineering aspect…
 Separation of interface and implementation is an
important issue…
bar()
Abstract type as an interface
Fooabstract Foo
function bar(obj::Foo, x)
……
end
Method signature as an interface
function bar(obj::Foo, x)
end
bar()
Foo
Julia tastes good!
http://images.clipartpanda.com/taste-clipart-dT8oABxEc.jpeg
What kind of language Julia belongs
to?
 We usually say that Java and Python are object-
oriented languages.
 So, how about Julia?
 Julia majors in metaprogramming, and minors in
object-oriented programming.
Object-oriented
programming
metaprogramming
https://img.xiaomac.com/playes/2007/0305008E9.JPG
Elegant but complicated type
system
Programming paradigms
 Pseudo-object-oriented programming
 Functional programming
 Metaprogramming
Q&A
Thank you for attention

More Related Content

What's hot

Object-Oriented Programming with C#
Object-Oriented Programming with C#Object-Oriented Programming with C#
Object-Oriented Programming with C#Svetlin Nakov
 
Testing for share
Testing for share Testing for share
Testing for share Rajeev Mehta
 
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonBasics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonSujith Kumar
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3mohamedsamyali
 
Python unit 3 m.sc cs
Python unit 3 m.sc csPython unit 3 m.sc cs
Python unit 3 m.sc csKALAISELVI P
 
Lecture 4_Java Method-constructor_imp_keywords
Lecture   4_Java Method-constructor_imp_keywordsLecture   4_Java Method-constructor_imp_keywords
Lecture 4_Java Method-constructor_imp_keywordsmanish kumar
 
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysUnit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysDevaKumari Vijay
 
‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3Mahmoud Alfarra
 
Polymorphism in Java
Polymorphism in JavaPolymorphism in Java
Polymorphism in JavaJava2Blog
 
The Ruby Object Model by Rafael Magana
The Ruby Object Model by Rafael MaganaThe Ruby Object Model by Rafael Magana
The Ruby Object Model by Rafael MaganaRafael Magana
 
Lecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops conceptLecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops conceptmanish kumar
 
C# Summer course - Lecture 4
C# Summer course - Lecture 4C# Summer course - Lecture 4
C# Summer course - Lecture 4mohamedsamyali
 
Anton Kasyanov, Introduction to Python, Lecture5
Anton Kasyanov, Introduction to Python, Lecture5Anton Kasyanov, Introduction to Python, Lecture5
Anton Kasyanov, Introduction to Python, Lecture5Anton Kasyanov
 

What's hot (20)

Inheritance Mixins & Traits
Inheritance Mixins & TraitsInheritance Mixins & Traits
Inheritance Mixins & Traits
 
Chapter 07 inheritance
Chapter 07 inheritanceChapter 07 inheritance
Chapter 07 inheritance
 
Java
JavaJava
Java
 
Object-Oriented Programming with C#
Object-Oriented Programming with C#Object-Oriented Programming with C#
Object-Oriented Programming with C#
 
Python oop third class
Python oop   third classPython oop   third class
Python oop third class
 
Testing for share
Testing for share Testing for share
Testing for share
 
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonBasics of Object Oriented Programming in Python
Basics of Object Oriented Programming in Python
 
‫Chapter3 inheritance
‫Chapter3 inheritance‫Chapter3 inheritance
‫Chapter3 inheritance
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3
 
Python unit 3 m.sc cs
Python unit 3 m.sc csPython unit 3 m.sc cs
Python unit 3 m.sc cs
 
Lecture 4_Java Method-constructor_imp_keywords
Lecture   4_Java Method-constructor_imp_keywordsLecture   4_Java Method-constructor_imp_keywords
Lecture 4_Java Method-constructor_imp_keywords
 
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysUnit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
 
‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3‫Object Oriented Programming_Lecture 3
‫Object Oriented Programming_Lecture 3
 
Polymorphism in Java
Polymorphism in JavaPolymorphism in Java
Polymorphism in Java
 
Python lecture 8
Python lecture 8Python lecture 8
Python lecture 8
 
The Ruby Object Model by Rafael Magana
The Ruby Object Model by Rafael MaganaThe Ruby Object Model by Rafael Magana
The Ruby Object Model by Rafael Magana
 
Lecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops conceptLecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops concept
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
 
C# Summer course - Lecture 4
C# Summer course - Lecture 4C# Summer course - Lecture 4
C# Summer course - Lecture 4
 
Anton Kasyanov, Introduction to Python, Lecture5
Anton Kasyanov, Introduction to Python, Lecture5Anton Kasyanov, Introduction to Python, Lecture5
Anton Kasyanov, Introduction to Python, Lecture5
 

Viewers also liked

20170217 julia小程式到專案發布之旅
20170217 julia小程式到專案發布之旅20170217 julia小程式到專案發布之旅
20170217 julia小程式到專案發布之旅岳華 杜
 
20161209-Julia Taiwan first meetup-julia語言入門
20161209-Julia Taiwan first meetup-julia語言入門20161209-Julia Taiwan first meetup-julia語言入門
20161209-Julia Taiwan first meetup-julia語言入門岳華 杜
 
手把手Julia及簡易IDE安裝
手把手Julia及簡易IDE安裝手把手Julia及簡易IDE安裝
手把手Julia及簡易IDE安裝岳華 杜
 
20170317 functional programming in julia
20170317 functional programming in julia20170317 functional programming in julia
20170317 functional programming in julia岳華 杜
 
Unit 1 - Our Planetary Neighborhood
Unit 1 - Our Planetary NeighborhoodUnit 1 - Our Planetary Neighborhood
Unit 1 - Our Planetary NeighborhoodKCTCS
 

Viewers also liked (8)

20170217 julia小程式到專案發布之旅
20170217 julia小程式到專案發布之旅20170217 julia小程式到專案發布之旅
20170217 julia小程式到專案發布之旅
 
20161209-Julia Taiwan first meetup-julia語言入門
20161209-Julia Taiwan first meetup-julia語言入門20161209-Julia Taiwan first meetup-julia語言入門
20161209-Julia Taiwan first meetup-julia語言入門
 
手把手Julia及簡易IDE安裝
手把手Julia及簡易IDE安裝手把手Julia及簡易IDE安裝
手把手Julia及簡易IDE安裝
 
20170317 functional programming in julia
20170317 functional programming in julia20170317 functional programming in julia
20170317 functional programming in julia
 
The sound of wealth
The sound of wealthThe sound of wealth
The sound of wealth
 
Mobile Apps Dvevelopment
Mobile Apps DvevelopmentMobile Apps Dvevelopment
Mobile Apps Dvevelopment
 
Unit 1 - Our Planetary Neighborhood
Unit 1 - Our Planetary NeighborhoodUnit 1 - Our Planetary Neighborhood
Unit 1 - Our Planetary Neighborhood
 
Sumit Sanyal - SD
Sumit Sanyal - SDSumit Sanyal - SD
Sumit Sanyal - SD
 

Similar to 20170113 julia’s type system and multiple dispatch

Similar to 20170113 julia’s type system and multiple dispatch (20)

Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
C++ Interview Questions
C++ Interview QuestionsC++ Interview Questions
C++ Interview Questions
 
Oop features java presentationshow
Oop features java presentationshowOop features java presentationshow
Oop features java presentationshow
 
C# interview
C# interviewC# interview
C# interview
 
Object-oriented programming
Object-oriented programmingObject-oriented programming
Object-oriented programming
 
Java object oriented programming - OOPS
Java object oriented programming - OOPSJava object oriented programming - OOPS
Java object oriented programming - OOPS
 
Inheritance
InheritanceInheritance
Inheritance
 
OOPS & C++(UNIT 4)
OOPS & C++(UNIT 4)OOPS & C++(UNIT 4)
OOPS & C++(UNIT 4)
 
core java
core javacore java
core java
 
Object-oriented Basics
Object-oriented BasicsObject-oriented Basics
Object-oriented Basics
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Unit3 part1-class
Unit3 part1-classUnit3 part1-class
Unit3 part1-class
 
Question and answer Programming
Question and answer ProgrammingQuestion and answer Programming
Question and answer Programming
 
Function overloading
Function overloadingFunction overloading
Function overloading
 
13 interfaces
13 interfaces13 interfaces
13 interfaces
 
11 interfaces
11 interfaces11 interfaces
11 interfaces
 
Notes on c++
Notes on c++Notes on c++
Notes on c++
 
Polymorphism in C# Function overloading in C#
Polymorphism in C# Function overloading in C#Polymorphism in C# Function overloading in C#
Polymorphism in C# Function overloading in C#
 
Presentation 4th
Presentation 4thPresentation 4th
Presentation 4th
 
My c++
My c++My c++
My c++
 

More from 岳華 杜

[COSCUP 2023] 我的Julia軟體架構演進之旅
[COSCUP 2023] 我的Julia軟體架構演進之旅[COSCUP 2023] 我的Julia軟體架構演進之旅
[COSCUP 2023] 我的Julia軟體架構演進之旅岳華 杜
 
Julia: The language for future
Julia: The language for futureJulia: The language for future
Julia: The language for future岳華 杜
 
The Language for future-julia
The Language for future-juliaThe Language for future-julia
The Language for future-julia岳華 杜
 
20190907 Julia the language for future
20190907 Julia the language for future20190907 Julia the language for future
20190907 Julia the language for future岳華 杜
 
Metaprogramming in julia
Metaprogramming in juliaMetaprogramming in julia
Metaprogramming in julia岳華 杜
 
Introduction to julia
Introduction to juliaIntroduction to julia
Introduction to julia岳華 杜
 
自然語言處理概覽
自然語言處理概覽自然語言處理概覽
自然語言處理概覽岳華 杜
 
Introduction to machine learning
Introduction to machine learningIntroduction to machine learning
Introduction to machine learning岳華 杜
 
Semantic Segmentation - Fully Convolutional Networks for Semantic Segmentation
Semantic Segmentation - Fully Convolutional Networks for Semantic SegmentationSemantic Segmentation - Fully Convolutional Networks for Semantic Segmentation
Semantic Segmentation - Fully Convolutional Networks for Semantic Segmentation岳華 杜
 
Batch normalization 與他愉快的小伙伴
Batch normalization 與他愉快的小伙伴Batch normalization 與他愉快的小伙伴
Batch normalization 與他愉快的小伙伴岳華 杜
 
從 VAE 走向深度學習新理論
從 VAE 走向深度學習新理論從 VAE 走向深度學習新理論
從 VAE 走向深度學習新理論岳華 杜
 
COSCUP: Foreign Function Call in Julia
COSCUP: Foreign Function Call in JuliaCOSCUP: Foreign Function Call in Julia
COSCUP: Foreign Function Call in Julia岳華 杜
 
COSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in JuliaCOSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in Julia岳華 杜
 
COSCUP: Introduction to Julia
COSCUP: Introduction to JuliaCOSCUP: Introduction to Julia
COSCUP: Introduction to Julia岳華 杜
 
Introduction to Julia
Introduction to JuliaIntroduction to Julia
Introduction to Julia岳華 杜
 
20180506 Introduction to machine learning
20180506 Introduction to machine learning20180506 Introduction to machine learning
20180506 Introduction to machine learning岳華 杜
 
20171127 當julia遇上資料科學
20171127 當julia遇上資料科學20171127 當julia遇上資料科學
20171127 當julia遇上資料科學岳華 杜
 
20171117 oop and design patterns in julia
20171117 oop and design patterns in julia20171117 oop and design patterns in julia
20171117 oop and design patterns in julia岳華 杜
 
20171014 tips for manipulating filesystem in julia
20171014 tips for manipulating filesystem in julia20171014 tips for manipulating filesystem in julia
20171014 tips for manipulating filesystem in julia岳華 杜
 
20170807 julia的簡單而高效資料處理
20170807 julia的簡單而高效資料處理20170807 julia的簡單而高效資料處理
20170807 julia的簡單而高效資料處理岳華 杜
 

More from 岳華 杜 (20)

[COSCUP 2023] 我的Julia軟體架構演進之旅
[COSCUP 2023] 我的Julia軟體架構演進之旅[COSCUP 2023] 我的Julia軟體架構演進之旅
[COSCUP 2023] 我的Julia軟體架構演進之旅
 
Julia: The language for future
Julia: The language for futureJulia: The language for future
Julia: The language for future
 
The Language for future-julia
The Language for future-juliaThe Language for future-julia
The Language for future-julia
 
20190907 Julia the language for future
20190907 Julia the language for future20190907 Julia the language for future
20190907 Julia the language for future
 
Metaprogramming in julia
Metaprogramming in juliaMetaprogramming in julia
Metaprogramming in julia
 
Introduction to julia
Introduction to juliaIntroduction to julia
Introduction to julia
 
自然語言處理概覽
自然語言處理概覽自然語言處理概覽
自然語言處理概覽
 
Introduction to machine learning
Introduction to machine learningIntroduction to machine learning
Introduction to machine learning
 
Semantic Segmentation - Fully Convolutional Networks for Semantic Segmentation
Semantic Segmentation - Fully Convolutional Networks for Semantic SegmentationSemantic Segmentation - Fully Convolutional Networks for Semantic Segmentation
Semantic Segmentation - Fully Convolutional Networks for Semantic Segmentation
 
Batch normalization 與他愉快的小伙伴
Batch normalization 與他愉快的小伙伴Batch normalization 與他愉快的小伙伴
Batch normalization 與他愉快的小伙伴
 
從 VAE 走向深度學習新理論
從 VAE 走向深度學習新理論從 VAE 走向深度學習新理論
從 VAE 走向深度學習新理論
 
COSCUP: Foreign Function Call in Julia
COSCUP: Foreign Function Call in JuliaCOSCUP: Foreign Function Call in Julia
COSCUP: Foreign Function Call in Julia
 
COSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in JuliaCOSCUP: Metaprogramming in Julia
COSCUP: Metaprogramming in Julia
 
COSCUP: Introduction to Julia
COSCUP: Introduction to JuliaCOSCUP: Introduction to Julia
COSCUP: Introduction to Julia
 
Introduction to Julia
Introduction to JuliaIntroduction to Julia
Introduction to Julia
 
20180506 Introduction to machine learning
20180506 Introduction to machine learning20180506 Introduction to machine learning
20180506 Introduction to machine learning
 
20171127 當julia遇上資料科學
20171127 當julia遇上資料科學20171127 當julia遇上資料科學
20171127 當julia遇上資料科學
 
20171117 oop and design patterns in julia
20171117 oop and design patterns in julia20171117 oop and design patterns in julia
20171117 oop and design patterns in julia
 
20171014 tips for manipulating filesystem in julia
20171014 tips for manipulating filesystem in julia20171014 tips for manipulating filesystem in julia
20171014 tips for manipulating filesystem in julia
 
20170807 julia的簡單而高效資料處理
20170807 julia的簡單而高效資料處理20170807 julia的簡單而高效資料處理
20170807 julia的簡單而高效資料處理
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

20170113 julia’s type system and multiple dispatch