Elementary cellular automaton: Difference between revisions
Content added Content deleted
(Add Factor example) |
(Realize in F#) |
||
Line 680: | Line 680: | ||
.......#.............#....... |
.......#.............#....... |
||
......#.#...........#.#...... |
......#.#...........#.#...... |
||
</pre> |
|||
=={{header|F_Sharp|F#}}== |
|||
===The Function=== |
|||
<lang fsharp> |
|||
// Elementary Cellular Automaton . Nigel Galloway: July 31st., 2019 |
|||
let eca N= |
|||
let N=Array.init 8 (fun n->(N>>>n)%2) |
|||
Seq.unfold(fun G->Some(G,[|yield Array.last G; yield! G; yield Array.head G|]|>Array.windowed 3|>Array.map(fun n->N.[n.[2]+2*n.[1]+4*n.[0]]))) |
|||
</lang> |
|||
===The Task=== |
|||
<lang fsharp> |
|||
eca 90 [|0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0|] |> Seq.take 80 |> Seq.iter(fun n->Array.iter(fun n->printf "%s" (if n=0 then " " else "@"))n; printfn "") |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
@ |
|||
@ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ |
|||
@@ @@ |
|||
@@ @@ |
|||
@@@@ @@@@ |
|||
@@ @@ |
|||
@@@@ @@@@ |
|||
@@ @@ @@ @@ |
|||
@@@@@@@@ @@@@@@@@ |
|||
@@ @@ |
|||
@@@@ @@@@ |
|||
@@ @@ @@ @@ |
|||
@@@@@@@@ @@@@@@@@ |
|||
@@ @@ @@ @@ |
|||
@@@@ @@@@ @@@@ @@@@ |
|||
@@ @@ @@ @@ @@ @@ @@ @@ |
|||
@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ |
|||
@@ @@ |
|||
@@@@ @@@@ |
|||
@@ @@ @@ @@ |
|||
@@@@@@@@ @@@@@@@@ |
|||
@@ @@ @@ @@ |
|||
@@@@ @@@@ @@@@ @@@@ |
|||
@@ @@ @@ @@ @@ @@ @@ @@ |
|||
@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ |
|||
@@ @@ @@ @@ |
|||
@@@@ @@@@ @@@@ @@@@ |
|||
@@ @@ @@ @@ @@ @@ @@ @@ |
|||
@@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ |
|||
@@ @@ @@ @@ @@ @@ @@ @@ |
|||
@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ |
|||
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ |
|||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|||
@ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ |
|||
@ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ |
|||
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |
|||
@ @ |
|||
</pre> |
|||
<lang fsharp> |
|||
eca 110 [|0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1|] |> Seq.take 80 |> Seq.iter(fun n->Array.iter(fun n->printf "%s" (if n=0 then " " else "@"))n; printfn "") |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
@ |
|||
@@ |
|||
@@@ |
|||
@@ @ |
|||
@@@@@ |
|||
@@ @ |
|||
@@@ @@ |
|||
@@ @ @@@ |
|||
@@@@@@@ @ |
|||
@@ @@@ |
|||
@@@ @@ @ |
|||
@@ @ @@@@@ |
|||
@@@@@ @@ @ |
|||
@@ @ @@@ @@ |
|||
@@@ @@@@ @ @@@ |
|||
@@ @ @@ @@@@@ @ |
|||
@@@@@@@@ @@ @@@ |
|||
@@ @@@@ @@ @ |
|||
@@@ @@ @ @@@@@ |
|||
@@ @ @@@ @@@@ @ |
|||
@@@@@ @@ @@@ @ @@ |
|||
@@ @ @@@@@ @ @@ @@@ |
|||
@@@ @@ @@ @@@@@@@@ @ |
|||
@@ @ @@@@@@ @@ @@@ |
|||
@@@@@@@ @ @@@ @@ @ |
|||
@@ @ @@@@ @ @@@@@ |
|||
@@@ @@ @@ @@@ @@ @ |
|||
@@ @ @@@ @@@ @@ @ @@@ @@ |
|||
@@@@@ @@ @@@ @@@@@@ @@ @ @@@ |
|||
@@ @ @@@@@ @@@ @@@@@@@@ @ |
|||
@@@ @@@@ @@@ @ @@ @@@ |
|||
@@ @ @@ @ @@ @@@ @@@ @@ @ |
|||
@@@@@@@@ @@ @@@@@ @ @@ @ @@@@@ |
|||
@@ @@@@@@ @@@@@@@@ @@ @ |
|||
@@@ @@ @ @@ @ @@@ @@ |
|||
@@ @ @@@ @@ @@@ @@ @@ @ @@@ |
|||
@@@@@ @@ @ @@@@@ @ @@@@@@@@@@ @ |
|||
@@ @ @@@@@ @@ @@@ @@ @@@ |
|||
@@@ @@ @@ @@@@ @@ @ @@@ @@ @ |
|||
@@ @ @@@@@@ @@ @ @@@@@ @@ @ @@@@@ |
|||
@@@@@@@ @ @@@ @@@@ @@@@@@ @@ @ |
|||
@@ @ @@@@ @@@ @ @@ @ @@@ @@ |
|||
@@@ @@ @@ @@@ @ @@ @@@ @@ @@ @ @@@ |
|||
@@ @ @@@ @@@ @@ @@@@@@@@ @ @@@ @@@@@@@ @ |
|||
@@@@@ @@ @@@ @@@@@@ @@@ @@ @ @@ @@@ |
|||
@@ @ @@@@@ @@@ @ @@ @@@@@@@@@ @@ @ |
|||
@@@ @@@@ @@@ @ @@ @@@@@ @ @@@@@ |
|||
@@ @ @@ @ @@ @@@ @@@ @@ @ @@ @@ @ |
|||
@@@@@@@@ @@ @@@@@ @ @@ @ @@@ @@ @@@ @@@ @@ |
|||
@@ @@@@@@ @@@@@@@@ @@ @ @@@ @@ @@@ @ @@@ |
|||
@@@ @@ @ @@ @@@@@@@@ @ @@@@@ @@@@@ @ |
|||
@@ @ @@@ @@ @@@ @@ @@@ @@ @@@ @@@ |
|||
@@@@@ @@ @ @@@@@ @ @@@ @@ @ @@@ @@ @ @@ @ |
|||
@@ @ @@@@@ @@ @@@ @@ @ @@@@@@@ @ @@@@@ @@@@@ |
|||
@@@ @@ @@ @@@@ @@ @ @@@@@ @@ @@@@@ @@@ @ |
|||
@@ @ @@@@@@ @@ @ @@@@@ @@ @ @@@ @@ @ @@ @ @@ |
|||
@@@@@@@ @ @@@ @@@@ @@@@ @@ @@ @ @@@ @@ @@@@@ @@@ |
|||
@@ @ @@@@ @@@ @ @@ @ @@@@@@@@ @@ @ @@@@@ @@@ @ |
|||
@@@ @@ @@ @@@ @ @@ @@@ @@@@ @ @@@@@@@ @ @@ @@@ |
|||
@@ @ @@@ @@@ @@ @@@@@@@@ @@@ @ @@@@ @ @@ @@@@@ @ |
|||
@@@@@ @@ @@@ @@@@@@ @@@ @ @@ @@ @ @@ @@@@@ @@@ |
|||
@@ @ @@@@@ @@@ @ @@ @@@@@@ @@@ @@ @@@@@ @ @@ @ |
|||
@@@ @@@@ @@@ @ @@ @@@@@ @ @@ @@@@ @@ @ @@ @@@@@ |
|||
@@ @ @@ @ @@ @@@ @@@ @@ @ @@ @@@@@ @ @@@ @@ @@@@@ @ |
|||
@@@@@@@@ @@ @@@@@ @ @@ @ @@@ @@ @@@@@ @ @@@@ @ @@@@@ @ @@ |
|||
@@@@@@ @@@@@@@@ @@ @ @@@ @@ @ @@@@ @@@@@ @ @@ @@ |
|||
@@ @ @@ @@@@@@@@ @@@@ @@ @@ @ @@ @ @@ @@@@@@ |
|||
@@@ @@ @@@ @@ @@@ @ @@@@@@ @@@@@ @@ @@@@@ @ |
|||
@@ @ @@@@@ @ @@@ @@ @ @@@@ @@@ @ @@@@@ @ @@ |
|||
@@@@@ @@ @@@ @@ @ @@@@@@@ @ @@ @ @@@@ @ @@ @@@ |
|||
@@ @@@@ @@ @ @@@@@ @@ @ @@ @@@@@ @@ @ @@ @@@ @@ @ |
|||
@@@ @@ @ @@@@@ @@ @ @@@ @@@@@ @@ @@@@ @@ @@@@@ @@@@@@ |
|||
@@ @ @@@ @@@@ @@@@ @@ @@ @ @@ @@@@ @@ @@@@@@ @@@ @ |
|||
@@@@@@ @@@ @ @@ @ @@@@@@@@ @@@ @@ @ @@@ @@ @ @@ @ @@@ |
|||
@@@ @ @@ @@@ @@@@ @ @@ @ @@@ @@@@ @@@@ @@ @@@@@ @@ |
|||
@@ @@@@@@@@ @@@ @ @@@@@@@@@ @@@ @@@ @ @@@@@ @ @@@ |
|||
@@@@@ @@@ @ @@ @@ @@@ @ @@ @ @@ @@ @ @@@@ @ |
|||
@@ @ @@ @@@@@@ @@@ @@ @@@@@@@@@@@@@@ @@ @@ @@@ |
|||
@@@ @@ @@@@@ @ @@ @ @@@@@ @ @@@@@@ @@ @ |
|||
@@ @ @@@ @@ @ @@ @@@@@ @@ @ @@@@ @@@@@@ |
|||
</pre> |
</pre> |
||