Book Image

Julia Programming Projects

By : Adrian Salceanu
Book Image

Julia Programming Projects

By: Adrian Salceanu

Overview of this book

Julia is a new programming language that offers a unique combination of performance and productivity. Its powerful features, friendly syntax, and speed are attracting a growing number of adopters from Python, R, and Matlab, effectively raising the bar for modern general and scientific computing. After six years in the making, Julia has reached version 1.0. Now is the perfect time to learn it, due to its large-scale adoption across a wide range of domains, including fintech, biotech, education, and AI. Beginning with an introduction to the language, Julia Programming Projects goes on to illustrate how to analyze the Iris dataset using DataFrames. You will explore functions and the type system, methods, and multiple dispatch while building a web scraper and a web app. Next, you'll delve into machine learning, where you'll build a books recommender system. You will also see how to apply unsupervised machine learning to perform clustering on the San Francisco business database. After metaprogramming, the final chapters will discuss dates and time, time series analysis, visualization, and forecasting. We'll close with package development, documenting, testing and benchmarking. By the end of the book, you will have gained the practical knowledge to build real-world applications in Julia.
Table of Contents (19 chapters)
Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Preface
Index

Period types and period arithmetic


We have already seen some of the Period constructors. These are all the available ones—Day, Week, Month, Year, Hour, Minute, Second, Millisecond, Microsecond, and Nanosecond. The Period type is an abstract type with two concrete subtypes, DatePeriod and TimePeriod:

julia> subtypes(Period) 
2-element Array{Any,1}: 
 DatePeriod 
 TimePeriod

Period in Julia represents a duration of time. It is a very useful abstraction representing vague time concepts that people use routinely. Think about a month—how many days does a month have—30 or 31? What about 28? Or 29?

Many times, it can be useful to work with vague abstractions without switching to actual dates until more information is provided. Take, for instance, the hypothetical case of a trip to Mars. According to https://image.gsfc.nasa.gov/poetry/venus/q2811.html, a return trip to Mars will take 21 months9 to get there, 3 to stay there, and 9 more to get back:

julia> duration_of_trip_to_mars = Month(9) ...