Nim
実行
コンパイルして実行
$ nim c -r hoge.nim
build
$ nimble build
test
$ nimble test
nimのバージョンを上げる
$ brew upgrade nim
外部ライブラリを使う
わからん..
Nimのメタプログラミング
Nimのstrfmt
fmt
を使うか、 &
を使うか
デバッグ
echo repr(hoge)
forward declaration
{.reorder: on.}
を使う?
詳しい
2023/8/1にv2.0
Nimのメモリ管理
コーディングルール
変わった機能
マイナスインデックス配列
nimvar a : array[-50..50,int]
a[-10] = 72
repr()
関数で値の中身を確認することができる
jsのconsole.log, PHPのvar_dump的なやつ
オブジェクト指向
Webフレームワーク
asynchttpserver
httpbeast
jester
prologue
basolato
phoon
akane
rosencrantz
whip
servy
geminim
Parameters~のところ
Javascriptとのあれ
nimbleのパッケージ管理
リスト内包表記
discard文
do記法
列挙型
ordinal types
Subranges
集合型
型変数
デバッグ
タプル
レファレンス型とポインタ型
Distinct type
nimimport typetraits
echo hoge.type.name
型のチェックができる
型クラス
pragma
メモのメモ後で調べるやつ
concepts
nil型
ポインタ例
理解していないところ
おもろそうな記事
coding rule
非同期処理
プロファイリング
macro,templateを競プロで使っている人t
2引数時の関数型っぽい書き方
Nimm.sort(cmp)
sort m, cmp # 同じ
typeやletと同じようにprocも一気に宣言できれば便利なのでは
こうすれば、あるオブジェクトに生えるメソッドと独立している関数を隔離することができるので、可読性もあがる
Nimproc
hoge(s: int) = s - 2
piyo(s: int) = s + 2
fuga(s: int) = s * 2
moe
Nim製エディタ
フロントもバックもNim
PythonをNimに置き換える
書籍
参考