2018/03/17 18:54

現在用意してあるいくつかの文書の中から、さらにその一部を抜き出したものを以下に示します。

疑似コード(案)

この疑似コード(案)のペラに記載されている関数定義では、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つのいずれかが選択され実行されます。

課題案

一応現時点で用意してある課題案です。内容のすべてをテキストにしているわけではありませんが、整理中、検討中を含め、概ねノートに手書きでは書き出してあります。

テキストサンプル

テキストのラフですが、おおまかなイメージとして、課題のすべてをこのようなテキストとしてまとめるつもりです。

このテキストサンプルは本プロジェクトのリターンには含まれませんが、今後のプロジェクトのリターンに含めたいと考えています。