関数型でFSMってどう書くの?