Jump to content

Elementary cellular automaton: Difference between revisions

Realize in F#
(Add Factor example)
(Realize in F#)
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>
 
2,172

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.