Universal Turing machine: Difference between revisions

Content added Content deleted
(adding lambdatalk)
Line 4,840: Line 4,840:
=={{header|Lambdatalk}}==
=={{header|Lambdatalk}}==
<lang scheme>
<lang scheme>
{require lib_H} ;; associative arrays library
{require lib_H} // associative arrays library


{def tm
{def tm
{def tm.r
{def tm.r
{lambda {:data :rules :state :end :blank :i :N}
{lambda {:data :rules :state :end :blank :i :N}
{if {or {W.equal? :state :end} {> :N 100}}
{if {or {W.equal? :state :end} {> :N 400}} // recursion limited to 400
then :data
then :data
else {let { {:name :name} {:data :data}
else {let { {:data :data} {:rules :rules}
{:end :end} {:blank :blank} {:rules :rules}
{:i :i} {:nb :nb}
{:state {H.get :state :rules}}
{:state {H.get :state :rules}}
{:end :end} {:blank :blank}
{:i :i} {:N :N}
{:cell {if {W.equal? {A.get :i :data} undefined}
{:cell {if {W.equal? {A.get :i :data} undefined}
then :blank
then :blank
Line 4,967: Line 4,967:
1 {H.new write 0 | move -1 | next A}}
1 {H.new write 0 | move -1 | next A}}
} A K 0}
} A K 0}

-> too much recursion
output: busy_beaver2: [] -> [1,1,1,1,1,1,1,1,1,1,1]


</lang>
</lang>