Q: Multiple Recursive function calls in J I am currently trying to write this function in J:

(T(1)=1)
My code is:
ints=: }.&i.          NB. list from 1 to n-1
chs =: ints !/ [      NB. list of binomials
subi=: - ints         NB. list from n-1 to 1
T=: +/(($: @: subi) * chs) ^: (1&<)

the functions work as they should, but the recursive call fails because T is called with a list, which then tries to generate a list of ints on a list.
How do I solve this or how could the function be written otherwise?

A: The general form for a recursive verb is:    
T =: main_body`default_value  @. main_or_default_check

The default value and check are easy here:
default_value =: 1"_
main_or_default_check =: 1 = ]

binomial is also standard, we can write it as
binom =: 4 : '(!x)%((!y)*(!x-y))'

the form of main_body is main_body =: sum binomial(n,i) * T n-i. We can use a helper verb f for the inner part of sum, to make things clearer:
f =: 4 :'(x binom y) * T x - y'

or in tacit form: f =: binom * [: T -.
n is fixed for each iteration of sum, whereas i goes from 1 to n-1 (>:i.n-1) so:
sum =: 3 :'+/(y&f)"0 >:i.y-1'

Putting the above together:
T =: 3 : '+/(y&f)"0 >:i.y-1'`(1"_)@.(1 = ])

T each >:i.8
┌─┬─┬─┬──┬───┬────┬─────┬──────┐
│1│2│9│52│375│3246│32781│378344│
└─┴─┴─┴──┴───┴────┴─────┴──────┘

