競技プログラミングサイトAtCoder にて、「初心者の方はまずこの問題を解いてみよう！」という趣旨の

AtCoder Beginners Selection - AtCoder Beginners Selection | AtCoder

というページが出来ていました。

最近全然プログラミングやってなかったのと、図書館で借りたこの本



を読んでテンションがあがっていたのもあり、Schemeで問題を解いていくことにしました。

11問あるんですが、今回は一旦7問目まで。

4問目

ABC081B: Shift only - AtCoder Beginners Selection | AtCoder

N個の数字の入力、というのが出てきます。

それに関しては、今回の回答で作った、これが自然な書き方かと思います。

( define read_list ( lambda ( n ) ( if ( = n 0 ) '() ( let* (( element ( read ))) ( cons element ( read_list ( - n 1 )))))))

リストとして入力してますが、"list->vector"という関数で配列にも簡単に変換できます。

しかし、カリー化？のやり方が思い出せず・・・面倒なので無理矢理書きました。

"list_min_check"という関数の引数として、ずっと"func"があるのダサいですよね。復習しなきゃ。