Recursion in higher types was introduced by S. C. Kleene in 1959. Since that time, it has come to be recognized as a natural and important generalization of ordinary recursion theory. Unfortunately, the theory contains certain apparent anomalies, which stem from the fact that higher type computations deal with the intensions of their arguments, rather than the extensions. This causes the failure of the substitution principle (that if φ ( α j + 1 , A ) \varphi ({\alpha ^{j + 1}},\mathfrak {A}) and θ ( β j , A ) \theta ({\beta ^j},\mathfrak {A}) are recursive, then there should be a recursive ψ ( A ) \psi (\mathfrak {A}) such that ψ ( A ) ≃ φ ( λ β j θ ( β j , A ) , A ) \psi (\mathfrak {A}) \simeq \varphi (\lambda {\beta ^j}\theta ({\beta ^j},\mathfrak {A}),\mathfrak {A}) at least whenever λ β j θ ( β j , A ) \lambda {\beta ^j}\theta ({\beta ^j},\mathfrak {A}) is total), and of the first recursion principle (that if F ( ζ ; A ) {\mathbf {F}}(\zeta ;\mathfrak {A}) is a recursive functional, then the minimal solution ζ \zeta of the equation F ( ζ ; A ) ≃ ζ ( A ) {\mathbf {F}}(\zeta ;\mathfrak {A}) \simeq \zeta (\mathfrak {A}) should be recursive as well). In an effort to remove—or at least explain—these anomalies, Kleene, in 1978, developed a system for computation in higher types which was based entirely on the syntactic manipulation of formal expressions, called j j -expressions. As Kleene pointed out, no adequate semantics for these expressions can be based on the classical (total) type structure T p Tp over N {\mathbf {N}} . In a paper to appear in The Kleene Symposium (North-Holland), we showed that an appropriate semantics could be based on the type structure T ^ p \hat {T}p , which is obtained by adding a new object u \mathfrak {u} at level 0 0 and, at level ( j + 1 ) (j + 1) , allowing all monotone, partial functions from type ȷ ^ \hat {\jmath } into N {\mathbf {N}} . Over T ^ p \hat {T}p , both of the principles mentioned above do hold. There is a natural embedding to T p Tp into T ^ p \hat {T}p . In this paper, we complement the syntactic structure with a syntax-free definition of recursion over T ^ p \hat {T}p , and show that the two notions are equivalent. This system admits an enumeration theorem, in spite of the fact that the presence of partial objects complicates the coding of finite sequences. Indeed, it is not possible to code all finite sequences from type ȷ ^ \hat {\jmath } as type- ȷ ^ \hat {\jmath } objects. We use the combination of the syntactic and semantic systems to prove that, for any φ : T p ( σ ) → p N \varphi : Tp^{(\sigma )} \underset {p}{\to }\mathbf {N} , the following are equivalent: A. φ \varphi is recursive in the sense of Kleene [1959], B. φ \varphi is recursive in the sense of Kleene [1978], and C. φ \varphi is the pull-back in T p Tp of some recursive ψ : T ^ p ( σ ) → p N \psi :\hat {T} p^{(\sigma )} \underset {p}{\to } \mathbf {N} . Using these equivalences, we give a necessary and sufficient condition on θ : T p ( σ ) → p N \theta :T{p^{(\sigma )}} \underset {p}{\to } \mathbf {N} , under which the substitution principle mentioned above will hold for any recursive φ : T p ( τ ) → p N \varphi :T{p^{(\tau )}} \underset {p}{\to } {\mathbf {N}} . With one trivial exception, the condition is that if j ⩾ 1 j \geqslant 1 , then A \mathfrak {A} must contain a variable of type greater than j j . We feel that this result is particularly natural in the current setting.