Help us understand the problem. What is going on with this article?

ATOMエディタではじめるマイナー言語探訪(あんま怖くないNim②)

More than 3 years have passed since last update.

マイナー言語のお試し基準 : ATOMエディタサポート

ATOMエディターでテキストハイライトされているくらいのプログラム言語は,たとえマイナーなものでも割合とお気軽感ある、と個人的に思っている。

C言語にコンパイルされ、C言語に近しい実行効率を発揮できるNim(現在のバージョンは0.15.2)は、まさしく気軽にお試しできるようになりつつあるところ。ということで、windows環境上のATOMエディターでのNimの始め方を備忘録しておく。他のマイナー言語お試しの際にも参考になる...かも。

ATOM側にコンソール環境を用意

ATOMでプログラミングする場合、ATOMエディタ内でコンソールを扱えるようにしておくべき。ここのところにwindows環境にははまりどころがあるらしく、webで調べるとはじめに出て来る拡張機能terminal-plusが動かなかった。

以下のブログを参考に、platformio-ide-terminalの方を入れると問題なく動作した。
http://labs.spiffield.net/archives/508

platformio-ide-terminal拡張機能の起動画面

ATOMエディタ内で下の方に追加された「+」ボタンをクリックすると platformio-ide-terminalが立ち上がる。windows環境では,powershellが立ち上がる模様。普通のコンソール画面なので、PATHが通っているものはそのまま扱える。データベースのコンソールでも操作などもATOMエディタ内で完結できるのは便利。

maria-nim.PNG

文字コードにご注意。

windows環境でプログラミング言語を扱う際には、出力される文字コードへの配慮が必要となる。レジストリを書き換えたりは大げさなので、一般的なコンソール環境と同様に、以下のコマンドで都度切り替えるくらいが良いかと。

  • 出力をutf-8とする場合
    • chcp 65001
  • 出力をShiftJisとする場合
    • chcp 932

AtomでNimしてみる。

普通にエディタをnimファイルをいじっで、コンソール上でnim c するだけ。PATHがとおっているばあい、nimとしての文法違反もエディット時に指摘してくれる。

こんなコードを書いて、コンパイル後に、

import unicode, strutils
let max =5

for i in countup(1, max):

  echo $max,"回中、",$i,"回目の質問です。"
  echo "10までの数字の中で、あなたのお好きな数字は?"
  var num: int= readLine(stdin).parseInt

  case num
  of 0:
    echo "ゼロですね。"
  of 1:
    echo "いちですか。"
  of 2..10:
    echo "こちらですね→ ",$int(num)
  else:
    echo "もっと大きいのがいいのですかねぇ"

できたexeファイルを実行してみる。
atom.PNG

やっていることは普通のC言語と概ね同じなんだけど、文法も実行方法もお手軽感がある。

Nimの文法を概観したくなった方。

日本語で概観したい場合、以下のメモ書きを参考とさせていただくのが良いのかな。と
https://gist.github.com/miyakogi/b1df00c8bc99927d9d0d

e-a-st
普段は外資の医薬系データエンジニア。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした