You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
初投稿。 注 : ・この記事は不完全であり、まだ追加の必要な部分も多くあります。 ・非公式です。 ・これはあくまで使い方のほんの一部の基本を日本語で表したものです。 もっと多くの機能を利用する場合は、GitHub等に公開されているexampleをみたり、ソースコードを見るなどしてご自身で習得していただきたいです。 [ 0 ] NiGuiとは? Nim用に作られたGUIライブラリです。 (GitHub : https://github.com/trustable-code/NiGui ) 利点 とにかく軽量 Windows用はWin32API、MacOS・Linux用はGTK+3上で動作します。 それだけでもかなり軽量ですが、当然使用言語はNimですから...もはや軽量性はほぼ文句なしです。 (一方nimxはSDLベースなのでちょっとそこらへん心配です。) クロスプラットフォーム 現在実装が
概要 nimのPEG操作関連処理をコツコツと書いていく予定 nimでは、正規表現ライブラリ(re)もありますが、PEG(pegs)も標準で入っています。 正規表現ライブラリはimpure(OS環境依存ってこと?)、PEGはpureライブラリ(nimで実装)となっているので、PEGを使ったほうがいいのかなーという印象です。 以下メモ シンプルなマッチング import strutils,pegs,unicode block: echo "1" =~ peg"\d" echo "123" =~ peg"\d+" echo "123ABC" =~ peg"\d+\w+" echo "123_ABC" =~ peg"\d+_\w+"
この記事は KMC Advent Calendar 2018 - Adventar 7日目の記事です. ついでに、Nim Advent Calendar 2018 - Qiita の 7日目の記事でもあります. 前日のKMCアドベントカレンダーの記事は dnek_ さんの 運ゲー排除マインスイーパー💣脱Unity計画(Android編)&SATによるソルバー改良 - dnekblog でした. がんばりますねー. はじめに Nimっていう最高の言語があるんですけどご存知でしょうか? 過去のアドベントカレンダーでもその素晴らしさを語っているので, ご存知でない人はぜひ御覧ください. この記事では Nim は version 0.19.0 を使用しています. プロファイリング コードを書いていてパフォーマンスがあまり出ない時,どこがボトルネックとなっているかを調べることは重要です. プロファ
タイトル通りNimのGUIフレームワーク、nimxに入門した話です。 この記事は Nim Advent Calendar 2018 の20日目の記事として登録させていただいています。 初アドベントカレンダーですね。 nimxとは nimxとは、Nimのクロスプラットフォーム対応のGUIフレームワークです。 GitHub: https://github.com/yglukhov/nimx nakeを用いてiOS, Android, MacOS, Windows, Linux, JS, Asm.jsに対応したビルドが可能です。(webの知識があれなのでJSに関しては公式ドキュメントの参照を推奨します) この記事について さて、この記事ではnimxの導入から実際にビルドしてみる手順までをまとめようかと思いますが、僕の実行した環境は以下です。 macOS Mojave Nim 0.19.0 nim
はじめに この記事はNim Advent Calender 2018の9日目です。 大体Nimの文法は分かったのでそろそろなんか書いてみようかな、ぐらいの人向けのつもり。 基本的にLinuxかMacのターミナル環境での実行を想定しています。 環境 Ubuntu 18.04 Nim 0.19.0 知ってると地味に便利な関数たち モジュールごとに紹介します。Standard Libraryのみ。 sequtils applyIt, mapIt 配列に対して、中身をひとつづつit変数に代入して第二引数に与えられた処理をするテンプレート(関数を生成する、メタな関数)です。 apply, mapのシンタックスシュガーのようなものですが、構文がかなりシンプルになります。 applyItは引数の配列を操作、mapItは返り値として結果の配列を返します。 mapItの方は返り値の型が元の型に縛られないので
この記事ではシンプルな2Dの プラットフォーム・ゲーム を書きます。SDLを使ったNimによるゲーム開発のチュートリアルとしてもよいでしょう。 ここでは、ユーザ入力を読み込み、グラフィックスとタイルマップを表示させ、衝突判定と処理を伴うシンプルな2Dの物理をシミュレーションします。その後、シンプルなカメラの動作とゲームロジックを実装します。また、適宜情報を表示するため、テキストをレンダリングし、そのためのキャッシュの仕組みを構築していきます。 最終的な成果物は、SDL2のみで動いて簡単に配信できる、ゲームに最適なバイナリファイルです。Linux環境の場合、NimをWindows用にクロスコンパイルする簡単な方法も提示しますので参照してください。 簡潔に説明するため、 DDNet と Teeworlds のなじみ深いグラフィックスを使います。このチュートリアルの成果は下の動画のようになります
概要 nimの勉強がてら簡易なコマンドを作ろうとしたときに調べたことを書いていきます。 メイン処理の判断(Pythonの__name__=='__main__') コマンドライン引数 プログラムの戻り値 コマンドライン引数パーサーを利用 サンプルアプリ1 メイン関数の判定を行い、引数、戻り値を設定するサンプルコードです。 isMainModuleという変数で、そのモジュールがメインとして起動しているかどうかを判断します。 # 通常のコマンドラインアプリサンプル その1 import system import os # メインモジュールとして起動しているかチェック if isMainModule : # 終了コードは、system.programResult に設定する if paramCount() == 0 : system.programResult = 1 else : # パラメ
Table of Contents 対象とする読書 本記事は以下の読者を前提にしています。 Nimを使ったことがない 1つ以上のプログラミング言語を習得している Ubuntuの開発環境がある(VMでもOK) REST APIを使った開発経験がある VS CodeまたはVimを使用した開発経験がある Package managerを使用した開発経験がある 以下は必須ではありませんが、該当すると望ましいです。 Python3を用いた開発経験がある 関数型言語を用いた開発経験がある 英語のドキュメントに強い抵抗がない Nimとは 公式から流用しますと以下のような特徴を持つ言語です。 システムおよびアプリケーションプログラミング言語 静的型付け コンパイル言語 エレガントなパッケージ ハイパフォーマンスなガベージコレクタ言語 C, C++, JavaScriptへのコンパイル シングルバイナリ W
はじめに 今回はNimのパッケージ管理ソフトのnimbleの使い方をご紹介します。 NimbleはNimのパッケージ管理&ビルドツールとなっています。 今回は、最初の方にある程度使いそうな各種コマンドの説明をしていきます。 詳細については以下を確認してください。 https://github.com/nim-lang/nimble 実行環境 macOS High Sierra v10.13.3 Docker 17.12.0-ce Nim v0.17.2 nimble v0.8.8 インストール Nimのツールなのでまずはnimをインストールします。 インストールの仕方はいくつかあるのですが、Macでやっているのでbrewにてインストールしちゃいます。 Nim インストール方法|公式 ※Windows Mac両方のインストール方法が記載されています。 環境を汚したくない方はDockerで環境
概要 nimのコレクション操作をコツコツと。 algorithm tables sets lists queues critbits intsets 以下メモ 同じ値で埋める(fill) import algorithm,tables,hashes,math import sets,lists,critbits,sequtils,queues,intsets,strutils block: var ary : array[0..3,int] # 範囲指定なし fill(ary,1) for x in ary: echo x # 範囲指定 fill(ary,0,3,5) for x in ary: echo x
Nimの勉強を兼ねて逆引きリファレンスとしてまとめてみようと思います。随時更新。(最終更新日:2022/4/10) この記事は「Nim Advent Calendar 2017」の記事として登録させてもらっています。 注意: 使用しているNimのバージョンは1.6.0です 間違っているかもしれません サンプルコードはテストしていないものが多いです 先に公式マニュアルなどを一通り読むことをおすすめします Nimツール Nimを普通に実行する : nim c -r Nimソースファイルパス 基本文法 コメントを記述する 変数を定義する 定数を定義する 文字列リテラルを利用する 数値リテラルを利用する プロシージャを呼び出す プロシージャを定義する 式の場所で文を記述する if文を利用する case文を利用する for文を利用する while文を利用する block文を利用する break文を利
nim_syntax.md 初めに 本稿ではNim言語 (旧称: Nimrod) の構文を紹介します。 Nim言語の概要やインストール方法については、ブログ記事があるのでそちらをご参照下さい。 Nimの紹介 − Python風静的型付言語 〜コンパイラと型推論を添えて〜 断り書き 筆者はNimの開発者ではなく、本稿も公式なドキュメントではありません。本稿は筆者がNimのチュートリアルを読みながら書いたメモ書きを基にしており、内容には間違いが含まれている可能性があります。Nimは正式リリース前であり、今後仕様が変更される可能性があります。したがって、本稿の内容と実際の仕様・実装と異なる可能性もあります。間違いや仕様変更への遅れなどがありましたらご指摘いただけると幸いです。 以下の資料を参考にしていますが、翻訳ではありません。また、サンプルコードをそのまま、または一部改変して使用させて頂いてお
概要 なんとなくあるんだなーぐらいにしか感じていなかったnimbleについて、ビルドに関する部分を調べてテンプレート化してみました。 (2019/09/28追記) Nim-1.0.0に対応しました nimbleのプロジェクト管理機能について nimbleのタスクはいくつかあるのですが、プロジェクト管理機能は、以下の4つくらいです。 * nimble init 新規プロジェクト作成 * nimble build プロジェクトのビルド * nimble test テスト実行 * nimble install リリースビルド&~/.nimbleへのインストール nimble initによりカレントディレクトリに*.nimbleファイルのみが生成されます。 その後、ソースはsrc/フォルダ配下にするとか、実行モジュールはbin/フォルダに生成するなどの設定は、生成された*.nimbleファイルに記
この記事について GW 暇だったので、かねてより気になっていた Nim と戯れてみました。Nim の言語機能の一部を簡単にご紹介します。 下記の記事とそのリンク先に、基本的な情報はほとんど載っていますので、まだの方はそちらもどうぞ。 至高の言語、Nimを始めるエンジニアへ - Qiita 本シリーズ記事では Nim by Example のお題に沿って進め、後半にはプラスαで、外部モジュールの使い方なども書く予定です。 本編(第1回)には以下の項目が含まれます。 - 変数 - 制御構文 - プロシージャ Nim の特徴 静的型付け、型推論あり インデントによりブロックを分ける(Python っぽい) C/C++, Objective-C, JavaScript へコンパイル可能 C/C++, Objective-C のライブラリをインポートして使える 変数宣言: const, let, v
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く