I have two ideas. Both are tedious.
1) If you can limit the maximum number of parameters.
You can cretate UDFs (maximum number of parameters - 1) times. Like GREATEST(for string or for integer) in
Sample UDFs for Migration
Although it showed only datatypes of VARCHAR, INTEGER and DOUBLE,
you can create UDFs for DATE by changing data types of UDFs using same function bodies.
2) Use VARCHAR as a parameter.
Then convert each of your parameters to CHAR, concatenate them in a VARCHAR and pass a concatenated values to the UDF.
You need to separate(decompose?) each parameters in your UDF.