Nim
https://gyazo.com/8f934e04c437064c8bedf17a199dae68
実行
コンパイルして実行
$ nim c -r hoge.nim
build
$ nimble build
test
$ nimble test
nimのバージョンを上げる
$ brew upgrade nim
外部ライブラリを使う
/jiro4989/nimble installに外部リソースもインストールして参照する方法
わからん..
Nimの型
NimのForとIterator
Nimのprocとmethodとfunc
Nimのコレクション型
NimのConcept
Pragma
Nimのポインタ型
NimのModule
Nimのメタプログラミング
Nimのmacro
Nimのtemplate
https://hookrace.net/blog/introduction-to-metaprogramming-in-nim/
https://qiita.com/shti_f/items/6afba0cf43cacff53405
Nimのテスト
Nimのstrfmt
https://scripter.co/notes/nim-fmt/%5D
fmtを使うか、&を使うか
開業の取扱が異なる ref
デバッグ
echo repr(hoge)
forward declaration
https://github.com/nim-lang/Nim/issues/5287#issuecomment-405517342
{.reorder: on.} を使う?
docs
詳しい
2023/8/1にv2.0
Nim v2.0 released - Nim Blog
https://zenn.dev/dumblepy/articles/92bdd7afe1fc29
Nimのメモリ管理
Nimにもmove semanticsあるんや
ARC (GC)
ORC (GC)
https://nim-lang.org/blog/2023/08/01/nim-v20-released.html#:~:text=value%20is%2020-,ARC/ORC%20refinements,-With%20the%202.0
コーディングルール
https://qiita.com/momeemt/items/6bcee91d531daab0158e
変わった機能
マイナスインデックス配列
code:nim
var a : array-50..50,int
a-10 = 72
repr()関数で値の中身を確認することができる
jsのconsole.log, PHPのvar_dump的なやつ
オブジェクト指向
https://aosa4054.hatenablog.com/entry/2019/05/16/132019?_ga=2.149744895.810379260.1576947150-2031377350.1554797561
Webフレームワーク
https://qiita.com/dumblepy/items/9417626f33de19fe14ba
asynchttpserver
httpbeast
jester
prologue
basolato
phoon
akane
rosencrantz
whip
servy
geminim
Parameters~のところ
https://qiita.com/KTakahiro1729/items/f4776f3a072c01f9086b#パラメータ-parameters
Javascriptとのあれ
https://nim-lang.org/docs/backends.html
nimbleのパッケージ管理
https://qiita.com/honeytrap15/items/9daa648efe373fbcb1fe
リスト内包表記
https://qiita.com/6in/items/809f4eb788d00503a825
discard文
do記法
https://nim-lang.org/docs/manual.html#procedures-do-notation
https://gist.github.com/miyakogi/b1df00c8bc99927d9d0d
列挙型
ordinal types
Subranges
集合型
型変数
デバッグ
https://qiita.com/6in/items/379bc1ba18241ddf5404
タプル
レファレンス型とポインタ型
Distinct type
型を確認する方法
code:nim
import typetraits
echo hoge.type.name
isキーワード
型のチェックができる
型クラス
https://nim-lang.org/docs/manual.html#generics-type-classes
pragma
https://nim-lang.org/docs/manual.html#pragmas
メモのメモ後で調べるやつ
concepts
nil型
ポインタ例
理解していないところ
おもろそうな記事
https://hookrace.net/blog/what-is-special-about-nim/
coding rule
https://nim-lang.org/docs/nep1.html
非同期処理
https://qiita.com/2vg/items/7b41c1b5cb750999a371
プロファイリング
https://chy72.hatenablog.com/entry/nim-flamegraph
macro,templateを競プロで使っている人t
https://beta.atcoder.jp/contests/abc083/submissions/2710490
https://beta.atcoder.jp/contests/abc088/submissions/2379529
2引数時の関数型っぽい書き方
code:Nim
m.sort(cmp)
sort m, cmp # 同じ
typeやletと同じようにprocも一気に宣言できれば便利なのでは
こうすれば、あるオブジェクトに生えるメソッドと独立している関数を隔離することができるので、可読性もあがる
code:Nim
proc
hoge(s: int) = s - 2
piyo(s: int) = s + 2
fuga(s: int) = s * 2
moe
Nim製エディタ
https://github.com/fox0430/moe
#作成ネタ
https://qiita.com/jiro4989/items/144b15ced0a57426ba5b
フロントもバックもNim
https://towardsdatascience.com/could-nim-replace-python-547145afcfd5
PythonをNimに置き換える
書籍
『Nim in action』
プログラミングNim
https://www.impressrd.jp/news/detail/1096
参考
Nim Tutorial Part Iを日本語訳してみた(前編) - Qiita
Nim Tutorial Part Iを日本語訳してみた(後編) - Qiita
【Nim】個人的逆引きリファレンス - Flat Leon Works
Syntax of Nim
Pythonとの比較
Nimのオブジェクト指向の整理 - Qiita
Nimメモ
https://chy72.hatenablog.com/entry/2017/12/16/214708