Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから
— てくも (@kumiromilk) 2016年3月9日
「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ!」って出力した後終了って関数作ったら満点で単位貰ってた
Nemerleでやってみた(´・ω・`) (GetZunで1秒間のウェイトを入れてます.嫌ならば,Thread.Sleep(1000)
を消して,Randomクラスのコンストラクタに,毎回値が異なるシード値を入れてやればいいでしょう(´・ω・`))
zundoko
using System;
using System.Threading;
using System.Console;
using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;
GetZun(randMaker : Random) : string {
Thread.Sleep(1000);
def s = if(randMaker.Next(2) == 0 ) "ズン" else "ドコ";
Write(s + " ");
s;
}
Main() : void
{
def randMaker = Ramdom()
def MainLoop(_) {
| ["ズン","ズン","ズン","ズン","ドコ"] => true
| _::xs when xs.Length > 3 => MainLoop(xs + [GetZun(randMaker)])
| x::xs => MainLoop((x :: xs) + [GetZun(randMaker)])
}
_ = MainLoop([GetZun(randMaker)]);
WriteLine("キ・ヨ・シ!");
}