Universal Turing machine: Difference between revisions
Content added Content deleted
(adding lambdatalk) |
(→{{header|Lambdatalk}}: minor edit) |
||
Line 4,840: | Line 4,840: | ||
=={{header|Lambdatalk}}== |
=={{header|Lambdatalk}}== |
||
<lang scheme> |
<lang scheme> |
||
{require lib_H} |
{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 |
{if {or {W.equal? :state :end} {> :N 400}} // recursion limited to 400 |
||
then :data |
then :data |
||
else {let { {: |
else {let { {:data :data} {:rules :rules} |
||
⚫ | |||
⚫ | |||
{:state {H.get :state :rules}} |
{:state {H.get :state :rules}} |
||
⚫ | |||
⚫ | |||
{: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> |