futoase

よろしくお願いします。

Nimrod AdventCalendar 2日目 兼 俺 AdventCalendar 2日目

Nimrod Advent Calendar 2日目 (兼: 俺 Advent Calendar 2日目)

Nimrod Advent Calendar 2日目担当、syanbi/futoase です。
最近はfutoaseというハンドルを利用しているのでfutoaseでお願いします。

お題目はNimrod、です。ニムロッド。
ニムロッドとは、旧約聖書に出てくる人物だそうです。
http://ja.wikipedia.org/wiki/ニムロド

ニムロッドは、バベルの塔建造企画発案者なのだそうです。
http://ja.wikipedia.org/wiki/バベルの塔

で、Nimrod。Nimrodのインストールはzipファイルを落として、
build.shスクリプトを叩けばできます。ので割愛します。

HelloWorld

HelloWorldは以下のように書きます。

コード

(helloworld.nim)

Echo("Hello World")

ビルドします…

> nimrod c helloworld.nim

実行します

./helloworld

簡単ですね。

もうちょい深く使ってみる

標準入力から入力を読み込んで処理してみる。

コード

(inputtest.nim)

var input = readline(stdin)

while input != "end":
  if input == "unko":
    Echo("Unko...")
  elif input == "manko":
    Echo("///")
  else:
    Echo("????")
  input = readline(stdin)

Echo("End")

実行してみる

簡単にできました。

ファイル数をカウントする

青空文庫から羅生門のテキストをダウンロードします
http://www.aozora.gr.jp/cards/000879/card127.html#download

nimrodはマルチバイト文字に関してはUTF-8を利用するのが無難なようなので
念のためnkfで変換しておきます

nkf -Lu --overwrite rashomon.txt

コード
import re
 
var count = 0
for l in lines("rashomon.txt"):
  inc(count)

Echo(count)

結果は以下の形になります

感想

  • Pythonと構文なり関数が似ている。
  • インクリメントにinc関数を使わないといけないのがめんどくさい...

Copyright (c) 2013-2017 Keiji Matsuzaki