home *** CD-ROM | disk | FTP | other *** search
- [MAZE.CNV]
- [G. Cisneros, 6.6.84; adapted from Proc. IEEE, 55, 1525 (1967)]
- [[
- All paths in a maze:
- (ni nf (na (na1 na2 ... nak) ... nz (nz1 ... nzj)))]]
-
- [compute the paths]
- (()()(0 1 2 3 4)(
- (<(>(and,<:n:>,<0>) <0> <-->/<1>,<1>(I)<0><)>);
- (<(>(and,<:n:>,<0>) (and,<:n:>,<1>) <2><<
- >>(or, <0>,<0>) <(><3><)>(or, ,)<4>,<<
- >>(WHILE,(5 6),<3>,(and,<:n:>,<5>)(or, ,)<6>,<<
- >>(if,(M,<(><5> <1> <2><4>(I)<0>),$,),<6>));
- (,$);
- )) M
-
- [validate data, call M]
- (( [list pattern definitions:]
- ((or,(IVL,A,Z,),(IVL,a,z,),(IVL,0,9,))) a [alphanum]
- (<:a:>(ITR,<:a:>)) n [node name]
- (<(>(or,<:n:>(ITR, <:n:>),)<)>) l [list]
- (<:n:> <:l:>) p [connections]
- )( [list skeleton definitions:]
- ((if,<0>,<9><>,, )) I [null/space]
- )(0 8 9)(
- [rule set:]
- ((^Z),);
- ((and,<(>(and,<:n:>,<9>) (and,<:n:>,<8>)<<
- >> <(><:p:>(ITR, <:p:>)<)><)>,<0>),<<
- >>(%t,Initial: <9>; final: <8>)<<
- >>(%t,(WHILE,(1 2),<<
- >><(>(if,(M,<0>/<(>),$,)<)>,<<
- >>(and,<[65]><--><)>,<1>)<2>,<<
- >><1>(^MJ),<2>,<=>(^MJ)))(%r)):
- (<>,(%t,<(>ni nf <(>na <(>na1 na2 ... nak<)> ... <<
- >>nz <(>nz1 ... nzj<)><)><)>)(%r)):
- (,(%t,not a maze)):
- ))
- [end]