뉴런에서 힌트를 얻어 자료형 Predicate의 구조를 고안해 보았다:


출력가지, 입력가지[0], ..., 입력가지[n], n ≥ 0.


가지는 돌기들의 집합- 공집합일 수 있음 -이며,

돌기와 돌기는 자료형 Formula- Predicate와 Value의 결합 -의 객체로 통신한다.

저번에 말했듯이 자료형 Value는 생성자와 Value의 결합이다.


다음 Butterfly 언어의 코드를 보자.

1 Nat

2 {

3 zero() = "z".

4 succ(n: Nat) = "s" * 'n'.

5 }

6 Main(Nat).

7 / Main(zero()).

8 Main(n) / Main(succ(n)).


7번 줄은 돌기가 없는 입력가지[0]를 만들며,

8번 줄은 돌기가 하나만 있는 입력가지[1]를 만든다.

각 입력가지는 그것의 돌기가 모두 활성화될 때에만 출력가지를 활성화시키며,

출력가지가 활성화되면 그것의 모든 돌기는 신경전달물질- 비유임 -을 방출한다.

즉 뉴런 Main()은, 7번 줄에 의하여 매 턴마다 Main(zero())를 방출하며,

8번 줄에 의하여 Main(n)이 참이면 다음 턴에 Main(succ(n))을 방출한다,

단 여기서 n은 값으로 치환되어야 한다.

따라서 처음 턴이 종료될 때 Main("z")가 참임을 알 수 있고,

두번째 턴이 종료될 때 Main("z")와 Main("sz")가 참임을 알 수 있고,

세번째 턴이 종료될 때 Main("z")와 Main("ssz")가 참임을 알 수 있다.


지금까지 Butterfly의 인터프리터가 작동하는 원리를 설명하였다.