新たに学習したことと思ったことをつらつらと

とある大学院生が生きてて学んだことや考えたしょうもないことを書くブログ

Julia始めました vol.1

Juliaとは

JuliaはMITで開発された言語で2009年に誕生し2012年に公表された。 開発者はブログでこんなことを言っている

我々は、オープンソースでリベラルなライセンスの言語がほしい。C言語の速度と、Rubyのダイナミズムがほしい。同図像性があり、LISPのような真のマクロを備えつつ、Matlabのように分かりやすくなじみのある数学的記法を使える言語がほしい。汎用的なプログラミングはPython並みに便利で、統計の扱いはR言語並みに容易で、文字列処理はPerl並みに自然で、線形代数はMatlab並みに強力で、プログラムの連結はシェル並みに得意な言語がほしい。習得が超簡単でありながら、筋金入りのハッカーが喜んで使い続ける言語がほしい。インタラクティブでありつつ、コンパイル方式の言語がほしい

いろんな言語のいいとこ取りの言語らしい

Juliaのインストール

公式サイトからインストール

実行環境

【PC】 macOS Catalina ver 10.15.6

【Julia】 ver 1.31

動かすまで

vscodeで動かす

  1. vscode拡張機能「julia」をinstallする

    f:id:oneroom-0302:20200809151616p:plain
    Juliaの拡張機能

  2. pathを通す

「code」→「基本設定」→「拡張機能

f:id:oneroom-0302:20200809152300p:plain
pathを通す

拡張機能」→「Julia」を選ぶ

f:id:oneroom-0302:20200809152520p:plain
Executable Path

Executable Pathにpathを通す。

今回のJuliaのversionが1.3なので1.3としている

  1. テスト

適当に.jiファイルを作って「Shift + Enter」で実行

f:id:oneroom-0302:20200809152811p:plain
test

Jupyter notebookで動かす

  1. インストールしたJuliaを起動する

  2. IJuliaをインストールする

julia> using Pkg
julia> Pkg.build("IJulia")
using IJulia; notebook(detached=true)

念のためJupyter notebookを立ち上げて確認する

基本的な演算

julia> 1 + 2 #加法
3

julia> 5 - 3 #減法
2

julia> 3 * 5 #乗法
15

julia> 7 / 5 #除法
1.4

julia> 7 % 5 #余り
2

julia> 3 ^ 2 #冪乗
9

とりあえずHello World

julia> println("Hello World!")
Hello World!

変数

Juliaにおける変数は値に紐づく名前になる

例えば以下の通り

julia> x = 10
10

julia> x + 1
11

julia> x = 1 + 1
2

julia> x = 'Hello World!!'
ERROR: syntax: invalid character literal
Stacktrace:
 [1] top-level scope at REPL[11]:1

julia> x = "Hello World!!"
"Hello World!!"

文字列を変数に渡す際にはダブルクォーテーションでなければならない

シングルクォーテーションとダブルクォーテーションは区別される?

詳しいことは後で調べる

変数名は大文字と小文字が区別される

julia> x = 1.0
1.0

julia> X = 2.0
2.0

julia> x + X
3.0

julia> phrase = "Hello World!!"
"Hello World!!"

Juliaには変数名に以下の制限を設けているが、以下の表記法を使用するのに便利になっている

  • 変数名を小文字で表記
  • 単語の区切りはアンダースコア( '_' )で表すことができるが、変数名が読みにくい場合の除き使用は推奨されていない
  • 型と モジュール名は大文字で始まり、単語の区切りはアンダースコアの代わりにキャメルケースで表記される
  • 関数や マクロの名前はアンダースコアを含まない小文字で表記
  • 引数に書き込む関数名は ! で終わる. これらの関数は、関数が呼び出された際に戻り値を返すだけでなく引数に変更を加えるため、「変異」または「in-place」と呼ばれる

とりあえず今日はこのくらい