Google Colaboratory+Nimで変数宣言について勉強します.
Google Colaboratory(以下Google Colab)は、Google社が無料で提供している機械学習の教育や研究用の開発環境です。開発環境はJupyter Notebookに似たインターフェースを持ち、Pythonの主要なライブラリがプリインストールされています。
引用元:Google Colabの使い方
nim4colabのインストール
Google Colab で nimコマンドを使用するためのライブラリであるnim4colabをインストールします.
%load_ext nim4colab により%を付けてNimのコマンドを使えます.
!pip install git+https://github.com/demotomohiro/nim4colab.git
%load_ext nim4colab
nimpyのインストール
PythonからNimを呼び出すためのNimのライブラリ、nimpyをインストールします.
nimpyをインストールすることで、後述の fib.nim内で使っているnimpyをコンパイル、ライブラリとして使用することができます.
nimbleはNimのライブラリをインストールするためのコマンドです.
%nimble install nimpy -y
Nimのコメントアウト
プログラミングでは、コード中にコメントを書くことができます。
Nimでは文頭に「#」を書くことで、コメントとして扱われます。
コメント扱いされた文は実行されることはありません。
# Google Colabでnimを使用するためのおまじない
%%nimc
# この行はコメントです.
# print("コメントです")
echo "Hello, World"
echo "Not, Comment"
# 実行結果
# Hello, World
# Not, Comment
Nimの変数宣言
Nimでは,Pythonと同様に変数をつける時は、左に変数名・右に数値や文字列を置き、間に「=」を挟みます。変数は大文字と小文字でも区別されます。
変数名が長い時に、Pythonのように「_」で区切るとエラーが発生しますので,区切る箇所を大文字にします。
変数宣言
また,Nimでは変数宣言の前に「var, let, const」をつける必要があります.
上記の3つのタグについては,下記の通りです.
- var:書き換え可能な変数の定義はvarで行います
- let:変数を束縛したい場合はletを使用します
- const:constで宣言した値は、コンパイル時に確定します。 letの場合は実行時に確定する変数で、変更ができないという扱いのようです。
Nim 変数、定数の宣言方法(var, let, const)
nim(var)
# Google Colabでnimを使用するためのおまじない
%%nimc
# データ型→初期値
var text:string
text = "text"
# データ型と初期値を同時
var Text = "Text"
# 出力
echo text
echo Text
# 変数名が長い時
# 同時に宣言
# varの後で改行は必須
var
x, y:int = 1
helloworldmessage = "Hello, World"
HelloWorldMessage = "Hello, World"
# varなので書き換え可能
y = 2
# 出力
echo x, helloworldmessage
echo y, HelloWorldMessage
# 実行結果
# text
# Text
# 1Hello, World
# 2Hello, World
nim(let)
# Google Colabでnimを使用するためのおまじない
%%nimc
# データ型→初期値
# letでは初期値なしではエラー発生
# let text:string
# text = "text"
# データ型と初期値を同時
let text = "text"
let Text = "Text"
# 出力
echo text
echo Text
# 変数名が長い時
# 同時に宣言
# varの後で改行は必須
let
x, y:int = 1
helloworldmessage = "Hello, World"
HelloWorldMessage = "Hello, World"
# letなので書き換え不可能
# エラー発生
# y = 2
# 出力
echo x, helloworldmessage
echo y, HelloWorldMessage
# 実行結果
# text
# Text
# 1Hello, World
# 1Hello, World
nim(const)
# Google Colabでnimを使用するためのおまじない
%%nimc
# データ型→初期値
# constでも初期値なしではエラー発生
# const text:string
# text = "text"
# データ型と初期値を同時
const text = "text"
const Text = "Text"
# 出力
echo text
echo Text
# 変数名が長い時
# 同時に宣言
# constの後で改行は必須
const
# x, y:int = 1 #constではエラー発生
x = 1
y:int = 2
helloworldmessage = "Hello, World"
HelloWorldMessage = "Hello, World"
# constなので書き換え不可能
# エラー発生
# y = 2
# 出力
echo x, helloworldmessage
echo y, HelloWorldMessage
# 実行結果
# text
# Text
# 1Hello, World
# 2Hello, World
関数を作成(def → proc)
Nimではprocで関数を作成する.
# Google Colabでnimを使用するためのおまじない
%%nimc
# 返り値:result
proc integer00() =
var
text = "text"
Text = "Text"
echo text
echo Text
# 変数名が長い時
var
helloworldmessage = "Hello, World"
HelloWorldMessage = "Hello, World"
echo helloworldmessage
echo HelloWorldMessage
integer00()
# text
# Text
# Hello, World
# Hello, World
また,返り値は下記の3つで設定できる.
- result
- return
- 関数名
# Google Colabでnimを使用するためのおまじない
%%nimc
# 返り値:result
proc HelloWorld(str1: string): string =
var text = str1 # &は文字列連結演算子
result = "Hello World"
# 返り値:return
proc HelloWorld2(str1: string): string =
var text = "Hello World" & str1 # &は文字列連結演算子
return text
# 返り値:関数名
proc HelloWorld3(str1: string): string =
var text = "Hello World\n" & str1 # &は文字列連結演算子
text
# 初期設定
var echo_str:string
# 返り値:result
echo_str = HelloWorld("mass")
echo echo_str
# 返り値:return
echo_str = HelloWorld2("mass")
echo echo_str
# 返り値:関数名
echo_str = HelloWorld3("mass")
echo echo_str
# Hello World
# Hello Worldmass
# Hello World
# mass
まとめ
Google Colaboratory+Nimで変数宣言について勉強しました.
参考サイト
Speeding up Python code with Nim