ADP
Programming Language ADP

English

Sourceforge.net

SourceForge.JP

Loading

counter (ループを作る)


形式
 counter( $start, $skip, $end, $counter)
引数
  • $start: ループの初期値
  • $skip: SKIP値
  • $end: 終了値
  • $counter: カウンタ値(結果)
完了時の動作
  • 通常時:次の述語を実行に移ります。
  • $start,$skip,$endが矛盾する時:バックトラックします。
バックトラック時の動作
  • カウント時:次の述語を実行に移ります。
  • カウント終了時:バックトラックします。
説明
 ループを構成する述語です。BASICやC言語のfor文に相当します。
$startを初期値として与えられ、ループをする(バックトラックする)毎に$skipが加算され、$endを超えた段階でループが終了(バックトラック)します。
ループ中$counterに現在のカウンター値が入ります。$start,$skip,$endの値により$counterに$endの値が入ることがあります(例 $start:1, $skip:1, $end:10の時、$counterには1から10の値が入ります)。
$start,$skip,$endが矛盾する場合(例 $start:1, $skip:-1, $end:10の時、$startに$skipをいくら足しても$endに到達しない)は、即座にバックトラックします。

※counter述語を使ってループを構成する場合、next述語と組み合わせて使用します。

コード例(lib/counter.p)
,prtn('start')
  ,counter(1, 1, 10, $c)
  ,prtn($c)
  ,next
  ,prtn('end')
;

実行例
D:\sample\lib>adp counter.p
start
1
2
3
4
5
6
7
8
9
10
end



Powered by ADP.