Nim帳スマートフォン用の表示で見るNim帳プログラミング言語Nimについて書いていきます。この広告は、90日以上更新していないブログに表示しています。言語としてはシステムプログラミングを意識している言語です。システムプログラミング言語としてはC/C++がメジャーな言語ですが、NimではC/C++と違って優秀なモジュールシステムを使うことができます。今回はそんなモジュールの話です。基本的にはpython風の文法になっています。書くことによって使えます。strutilsとすればすぐに使うことができます。exceptimportする際に一部の関数などをインポートしないようにするexceptがあります。error!from他にも、特定の関数のみをインポートするfrom文があります。モジュール名を含む場合使用可能importはカンマで区切ることによって1行で複数モジュールをインポートすることができます。sequtilsさらに、asで別名にすることができます。suインポートした関数などは、そのまま関数名で呼び出すことができ、strutils.formatのように呼び出すこともできます。別のモジュール同士に同じ関数名が含まれている場合は、モジュール名をつけることによって区別することができます。標準ライブラリパッケージマネージャのnimbleによってインストールされたライブラリ同ディレクトリからインポートしようとします。インポートする際にはモジュール名に相対パスを使うことができ、相対パスの/を.に置き換えることもできます。modules.fooechoInt(1)Asterisk(public)サンプルの関数に付いているアスタリスク*は関数を公開(public)するようにする文法です。関数以外にもマクロや型などにも付けることができます。export他モジュールの関数などを別モジュールから公開するexportがあります。$xincludeincludeは他のファイルをそのまま取り込む文です。<***.h>ですね。fileC使いどころとしては複数のAPIのwrapperを作るとき、コンパイル時に使用するAPIを切り替えできるようにする際にwhenと組み合わせて使ったりします。API")nimblenimbleはNimのパッケージマネージャ兼ビルドシステムです。C/C++と違い、公式で用意されているものなのでほとんどのNimライブラリがコマンド一発で入るというとても便利なものになっています。csv上記のコマンドでcsvパーサが一発で入ります。csvを書いて直ぐに使い始めることができます。nimbleで入れられるライブラリとして特徴的なのはcompilerライブラリです。compilerライブラリは文字通りコンパイラのライブラリで、これはNimのコンパイラのライブラリになっています。NimはコンパイラがNim自身で書かれているので(セルフホスティング)、こうしてコンパイラ自身をライブラリとして使えるようになっています。まとめNimのモジュールシステムは非常に優れており、これだけでC/C++に比べてアドバンテージがあるのではないでしょうか。compilerライブラリは他の言語ではなかなか無いライブラリで、とても興味深いのでいずれ単体で記事にしたいところです。おまけNimではC/C++のようにコンパイル時にコンパイラに必要なファイル全てを渡す必要はなく、一つのファイルを渡せば後はimportから自動的に解析してコンパイルしてくれます。Nimではインクリメンタルコンパイルができ、一度コンパイルしてしまえばあとは更新があった部分のみを再コンパイルしてくれるので2回目以降のコンパイルは非常に高速です。1回目のコンパイルは標準ライブラリを含めてコンパイルされるので時間がかかりますが、2回目以降は高速化されるので実用上問題になることは少ないでしょう。入門で検索するとトップに...2016-09-29Nimの関数についてNimでは関数のオーバーロードができます。Nimでは独自の演算子...2016-09-26型の定義Nimの型定義についてです。Nimには様々な型の定義方法がありま...2016-09-24Nimのデータ型Nimのデータ型についてです。»プロフィールid:shsnow23プログラミング言語Nimについて書いていきます。月別アーカイブ参加グループプログラミングはてなブログをはじめよう!shsnow23さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。