# Re: [fricas-devel] help with higher order functions needed

```Well... after a little thought, I found a solution.

See foo3! in attachment.```
```
Is this form (which would certainly work in Aldor) actually available in
SPAD?

foo1!(t : MI, n : NNI)(
bm : MI, N : NNI, k : Z, j : Z, q : Z) : MI ==
for i in 1..n repeat
t(k, i) := t(k, i) - q*t(j, i)
foo(bm, N, k, j, q)

Thank you
Ralf

--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to fricas-devel+unsubscr...@googlegroups.com.
To post to this group, send email to fricas-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.
```
```)abbrev package FOO Foo
Foo() : Exports == Implementation where
Z ==> Integer
MI ==> Matrix(Integer)
NNI ==> NonNegativeInteger

Exports ==> with
foo3!: (MI, NNI) -> (MI, NNI, Z, Z, Z) -> MI
Implementation ==> add
foo(bm : MI, N : NNI, k : Z, j : Z, q : Z) : MI ==
for i in 1..N repeat
bm(k, i) := bm(k, i) - q*bm(j, i)
bm

foo3!(t : MI, n : NNI) : (MI, NNI, Z, Z, Z) -> MI ==
(bm : MI, N : NNI, k : Z, j : Z, q : Z) : MI +->
for i in 1..n repeat
t(k, i) := t(k, i) - q*t(j, i)
foo(bm, N, k, j, q)
```