43 lines
683 B
Plaintext
43 lines
683 B
Plaintext
:: Hoon 201 - Week 2
|
|
:: ~bannum-magtus || s@p7.co.nz
|
|
::
|
|
:: i could not figure out how to
|
|
:: cast the output of a wet gate
|
|
:: to a list of the same type :(
|
|
::
|
|
:- %say
|
|
|= [* [t=(tree @) x=@ ~] *]
|
|
:- %noun
|
|
^- [? (list @)]
|
|
=<
|
|
:- (dfs-search t x) (dfs t)
|
|
|%
|
|
++ dfs
|
|
|= t=(tree @)
|
|
^- (list @)
|
|
?~ t
|
|
~
|
|
%+ weld
|
|
(dfs l.t)
|
|
%+ weld
|
|
(dfs r.t)
|
|
[n.t ~]
|
|
++ dfs-search
|
|
|= [t=(tree @) x=@]
|
|
^- ?
|
|
?~ t
|
|
%.n
|
|
?| (dfs-search l.t x)
|
|
(dfs-search r.t x)
|
|
=(n.t x)
|
|
==
|
|
:: i assume ?| will stop as
|
|
:: soon as it sees a true,
|
|
:: otherwise below is better
|
|
::
|
|
::?: (dfs-search l.t x) %.y
|
|
::?: (dfs-search r.t x) %.y
|
|
::=(x n.t)
|
|
--
|
|
|