Jump to content

Display a linear combination: Difference between revisions

Realize in F#
m (→‎{{header|C}}: use {{out}} template)
(Realize in F#)
Line 286:
-e(1)
</pre>
 
=={{header|F_Sharp|F#}}==
===The function===
<lang fsharp>
// Display a linear combination. Nigel Galloway: March 28th., 2018
let fN g =
let rec fG n g=match g with
|0::g -> fG (n+1) g
|1::g -> printf "+e(%d)" n; fG (n+1) g
|(-1)::g -> printf "-e(%d)" n; fG (n+1) g
|i::g -> printf "%+de(%d)" i n; fG (n+1) g
|_ -> printfn ""
let rec fN n g=match g with
|0::g -> fN (n+1) g
|1::g -> printf "e(%d)" n; fG (n+1) g
|(-1)::g -> printf "-e(%d)" n; fG (n+1) g
|i::g -> printf "%de(%d)" i n; fG (n+1) g
|_ -> printfn "0"
fN 1 g
</lang>
===The Task===
<lang fsharp>
fN [1;2;3]
</lang>
{{out}}
<pre>
e(1)+2e(2)+3e(3)
</pre>
<lang fsharp>
fN [0;1;2;3]
</lang>
{{out}}
<pre>
e(2)+2e(3)+3e(4)
</pre>
<lang fsharp>
fN[1;0;3;4]
</lang>
{{out}}
<pre>
e(1)+3e(3)+4e(4)
</pre>
<lang fsharp>
fN[1;2;0]
</lang>
{{out}}
<pre>
e(1)+2e(2)
</pre>
<lang fsharp>
fN[0;0;0]
</lang>
{{out}}
<pre>
0
</pre>
<lang fsharp>
fN[0]
</lang>
{{out}}
<pre>
0
</pre>
<lang fsharp>
fN[1;1;1]
</lang>
{{out}}
<pre>
e(1)+e(2)+e(3)
</pre>
<lang fsharp>
fN[-1;-1;-1]
</lang>
{{out}}
<pre>
-e(1)-e(2)-e(3)
</pre>
<lang fsharp>
fN[-1;-2;0;-3]
</lang>
{{out}}
<pre>
-e(1)-2e(2)-3e(4)
</pre>
<lang fsharp>
fN[1]
</lang>
{{out}}
<pre>
e(1)
</pre>
 
 
=={{header|J}}==
2,172

edits

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