Sorry if I'm a bit lost. I've recently started learning about different programming language paradigms and I found that all texts presuppose that all functions written in a programming language are curriable. I haven't seen any proof of this and after looking for a while I found information about cartesian closed categories. My knowledge of mathematics is quite limited so I don't know if this is applied to, well, everything that can be done with a turing machine. My guess is that something like this is proven (or maybe it's obvious and my knowledge is too limited). Thank you in advance.
I tried to find some answers in Google but I'm out of luck.
It's difficult to answer this question without a context. Currying means that a function that takes a pair of argumenst is equivalent to a function of one argument that returns a function of the second argument. So, obviously, in programming languages in which functions are not first-class citizens, currying makes no sense, since you can't return a function. In functional languages, on the other hand, currying is built in from the get go. In lambda calculus where everything is a function, the pair itself is defined as a function returning a function.