130. LazyMan() を作る

JavaScript

少し工夫が必要  - accepted / - tried

LazyManは食べることと寝ることしかやらないので、lazyです。

LazyMan(name: string, logFn: (log: string) => void) では渡されるlogFnを利用して、メッセージをログする。

LazyMan('Jack', console.log)// Hi, I'm Jack.

eat(food: string)はできる。

LazyMan('Jack', console.log)  .eat('banana')  .eat('apple')// Hi, I'm Jack.// Eat banana.// Eat Apple.

sleep(time: number)もできる、秒単位。

LazyMan('Jack', console.log)  .eat('banana')  .sleep(10)  .eat('apple')  .sleep(1)// Hi, I'm Jack.// Eat banana.// Wake up after 10 seconds.// Eat Apple.// Wake up after 1 second.

sleepFirst(time: number)では順序問わず、一番高い優先順位でsleepする。

LazyMan('Jack', console.log)  .eat('banana')  .sleepFirst(10)  .eat('apple')  .sleep(1)// Wake up after 10 seconds.// Hi, I'm Jack.// Eat banana// Eat apple// Wake up after 1 second.

こういうlazyなLazyMan()を作ってください。

常にもっといい方法を求めよう。