現在用意してあるいくつかの文書の中から、さらにその一部を抜き出したものを以下に示します。
この疑似コード(案)のペラに記載されている関数定義では、for、whileに相当するloopの機能の実装はできません。それは、ペラの内容がフル仕様ではないためです。
この例に限れば、次のように定義するのがフル仕様の一部となります。
loop : func [ a `in b] :
中身
;|
func [ a ] :
中身
;
ここで、"func" は関数定義であることを示しますが、その引数の違いにより、とくに"`in" というクオートされたリテラルの存在により、上の方はforに相当し、その不在により下の方のwhileに相当するものとなります。
もっとも、untilに相当するのはいまいちうまく書けません。
loop : func [ a `in b] :
中身
;|
func [ a ] :
中身
;|
func [ `until a ] :
中身
;
とは書けますが、この場合 "loop until 条件" となり、untilっぽさが薄くなります。
また、";|" は、ブロックに対しての "or" であり、この場合、引数の違いにより、3つのいずれかが選択され実行されます。
一応現時点で用意してある課題案です。内容のすべてをテキストにしているわけではありませんが、整理中、検討中を含め、概ねノートに手書きでは書き出してあります。
テキストのラフですが、おおまかなイメージとして、課題のすべてをこのようなテキストとしてまとめるつもりです。
このテキストサンプルは本プロジェクトのリターンには含まれませんが、今後のプロジェクトのリターンに含めたいと考えています。