Sounds like your thinking of /purely/ functional programming. Although none of these terms have precise definitions so there’s not really any point arguing over them.
Functional programming for me has a feeling of a mathematically sound foundation: This means a statically typed language with a powerful type-system and type inference. Immutability/effect system are a big plus. Broad range of data-structures and a decent object system are nice, too.
Mathematical soundness does not require type inference. It's unclear whether it requires static typing.
And, it can easily get by with almost no type-system.