Julia 入門學習教程

有一門語言,它看起來像 Python ,感受起來像 Lisp ,運行起來又像 C 同樣快速,他就是Julialinux

近年來,Julia 語言已然成爲編程界的新寵,尤爲在科學計算和人工智能領域煊赫一時。算法

據 Julia Computing 的宣傳,在七項基礎算法的測試中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。shell

爲何 Julia 能作到這些,看一下它的開發者的初衷:數據庫

「咱們想要的是一種自由開源的語言,它同時擁有 C 的速度和 Ruby 的動態性;咱們想要一個能夠像 Python 同樣做爲通用編程語言的工具, 像 R 那樣適用於統計分析,像 Perl 那樣天然地處理字符串,像 MATLAB 那樣給力地處理矩陣運算,它還要能像 Shell 同樣做爲膠水將各類程序粘合在一塊兒……」編程

Julia 在開發之初就將這些理念歸入其中,纔有了今天的成績。編程語言

實驗樓上線了一門免費的 Julia 入門課程 ---《Julia簡明教程》,包含 6 個實驗和一個挑戰。你將學習到 Julia 的基礎語法,並親手用 Julia 開發出一個小項目。分佈式

建議點擊課程連接,直接使用實驗樓的在線虛擬機學習這門課,效果會更好。函數


如下爲課程第一節內容:工具

image

1、實驗簡介

本課程做爲 Julia 這門編程語言的入門教程,旨在介紹其基礎語法,但願你們可以經過本課程的學習,熟練掌握 Julia 的語法風格和編程習慣。性能

2、知識點

  • Julia 簡介
  • 在實驗環境中安裝 Julia
  • Julia REPL 用法

3、Julia 簡介

根據維基百科中的描述,大約在 2009 年,一羣擁有各類語言豐富編程經驗的 Matlab 高級用戶,對現有的科學計算編程工具感到不滿 —— 這些軟件對本身專長的領域表現得很是棒,但在其它領域卻很是糟糕。

他們想要的是一個開源的軟件,它要像 C 語言通常快速而又擁有如同 Ruby 的動態性;要具備 Lisp 般真正的同向性而又有 Matlab 般熟悉的數學記號;要像 Python 般通用、像 R 通常在統計分析上駕輕就熟、像 Perl 般天然地處理字符串、像 Matlab 般具備強大的線性代數運算能力、像 shell 通常擁有膠水語言的能力,易於學習而又不讓真正的黑客感到無聊;還有,它應該是交互式的,同時又是編譯型的。

最後 Julia 出現以後,你們評價它看起來像 Python ,感受起來像 Lisp ,運行起來像 C 。

如下描述來自官方文檔:

Julia 與傳統動態語言最大的區別是:

1. 核心語言很小;標準庫是用 Julia 自己寫的,如整數運算在內的基礎運算

2. 完善的類型,方便構造對象和作類型聲明

3. 基於參數類型進行函數 重載

4. 參數類型不一樣,自動生成高效、專用的代碼

5. 高性能,接近靜態編譯語言,如 C 語言

Julia 想要變成一個史無前例的集易用、強大、高效於一體的語言。除此以外,Julia 的優點還在於:

1. 免費開源( MIT 協議 )

2. 自定義類型與內置類型一樣高效、緊湊

3. 不須要把代碼向量化;非向量化的代碼跑得也很快

4. 爲並行和分佈式計算而設計

5. 輕量級 「綠色」 線程( 協程 )

6. 低調又牛逼的類型系統

7. 優雅、可擴展的類型轉換

8. 高效支持 Unicode, 包括且不僅 UTF-8

9. 直接調用 C 函數(不需封裝或 API)

10. 像 Shell 同樣強大的管理其餘進程的能力

11. 像 Lisp 同樣的宏和其餘元編程工具

4、安裝 Julia

打開實驗環境,咱們要安裝目前最新的 Julia1.3 版本(截止 2020 年 1 月)。

首先,在終端執行 wget-c https://julialang-s3.julialang.org/bin/linux/x64/1.3/julia-1.3.1-linux-x86_64.tar.gz 命令下載安裝包,這是官方提供的下載地址。由於此安裝包比較大,90 多 M ,因此建議你們執行以下命令下載它:

wget https://labfile.oss.aliyuncs.com/courses/1485/julia-1.3.1-linux-x86_64.tar.gz

首先在終端命令行執行 cd 命令切換到用戶家目錄 /home/shiyanlou ,而後再執行上述命令:

image

下載完成以後,會在當前目錄下出現 Julia 的安裝包 julia-1.3.1-linux-x86_64.tar.gz ;執行 tar xzvf julia-1.3.1-linux-x86_64.tar.gz 命令,便可完成解包;而後將 Julia 的可執行文件建立一個軟鏈接到 /usr/bin 目錄下便可完成所有安裝工做:

cd /usr/bin
sudo ln -s ~/julia-1.3.1/bin/julia julia
cd
julia

image

如上圖所示,終端執行 julia 命令便可進入命令行交互解釋器,也叫 REPL 。這個是否是有些熟悉呢?各個數據庫以及 Python 都有這個交互工具。輸入 exit() 或按下快捷鍵 Ctrl + D 便可退出,終端執行 julia-version 命令能夠查看版本:

圖片.png

啓動 Julia 命令行交互解釋器的時候,會打印一張橫幅,如上圖所示。咱們能夠建立一個文件,使其在打印橫幅以前,打印一些別的:

mkdir .julia/config
echo 'println("Hello Shiyanlou")' > .julia/config/startup.jl
julia

圖片.png

如上圖所示,在啓動 REPL 時,先打印了一行字:Hello Shiyanlou 。熟悉 Python 的同窗都知道打印信息到屏幕上使用的是 print 方法,在 Julia 中是 println 方法,並且須要切記的是,在 Julia 中單引號和雙引號不可混用,只有雙引號才能描述字符串。

5、Julia REPL 的四種模式

進入 REPL 以後,會有 julia> 字樣的提示符,這是常規模式,咱們能夠在其中執行一些代碼:

julia> println("hello kitty")
hello kitty

julia> 2 + 3
5

julia> ans
5

julia> x = 5
5

julia> x -= 1
4

julia> x
4

julia> x *= 2
8

julia> x
8

julia>

如上所示,ans 這個變量會保存上一次命令的執行結果,它僅在命令行交互解釋器中適用,不可寫到 jl 文件裏,Julia 的文件後綴爲 jl ,如同 Python 文件的後綴爲 py 。

除了常規模式,REPL 還有 help 模式、shell 模式和 package 模式。

6、help 模式

在常規模式下輸入問號便可進入 help 模式,此模式的提示符是 help?> ,輸入一個方法,便可顯示此方法的幫助信息,而後自動回到常規模式:

image

這等同於在常規模式下使用 @doc 這個宏來查看幫助信息:

image

7、shell 模式

在常規模式下輸入分號 ; 進入 shell 模式,提示符爲 shell> ,這等同於環境終端,能夠執行 zsh 命令,一樣是執行完一個命令後自動退回到常規模式:

image

8、package 模式

常規模式下輸入中括號 ] 進入 pkg 模式,提示符爲 (v1.3)pgk> ,括號裏面是版本號,這是包管理模式。

該模式下輸入 status 命令能夠查看包狀態, add 命令添加工具包, rm 命令刪除工具包:

image

安裝這個包須要較長時間,執行 rm 命令刪除它:

image

按退格鍵 Backspace 回到常規模式。

9、總結

本節實驗主要介紹了 Julia 語言的來源,它與不少其它語言很像,這是由於做者是集各家之長創造的 Julia 。在實驗環境中的安裝方法十分簡單,下載安裝包,解包,設置軟鏈接。

此外還介紹了命令行交互解釋器的四種模式,在後面的課程中,咱們會用到它們。

下一節實驗將會學習 Julia 的變量。

想要學習下面的內容,你們能夠點擊《Julia簡明教程》,免費在線學習所有章節內容。

相關文章
相關標籤/搜索