
_START_ARTICLE_
Program Composition Notation
_START_SECTION_
プログラム例
_START_PARAGRAPH_
可変変数 m の内容がリスト x の要素であれば true(1) を、そうでなければ false(0) を返すプログラムの例を以下に示す。_NEWLINE_member(x,m,r)int m, r;{? x ?= []             -> r:= false,_NEWLINE_   x ?= [vlxs], v == m -> r:= true,_NEWLINE_   x ?= [vlxs], v != m -> member(xs, m, r)}_NEWLINE_二分木（バイナリツリー）t の高さ z を求めるプログラムの例を以下に示す。ツリーの要素は {left, val, right} か空のタプルで表現されているものとする。各枝の深さは並行して計算され、定義変数 l と r によりheightの実行とｚの計算との同期が行われる。_NEWLINE_height(t,z){? t ?= { }                -> z = 0,_NEWLINE_   t ?= {left, val, right} -> {|| height(left, l), height(right, r),_NEWLINE_                                 {? l >= r -> z = 1 + l,_NEWLINE_                                    r >= l -> z = 1 + r_NEWLINE_                                 }_NEWLINE_        }}