I read that the 'functions' subgroup in the arduino language is for controlling the arduino board and 'performing computations'.
well functions are a construct of C++ and many programming languages. What you do in a function is defined by the code you put in there. they can "control" the board (eg read or set pins) or do other stuff like calculate something.
Does that mean that arduino can work live with new inputs or must they all be defined beforehand? Or must a domain of possible values be defined?
Your program will need to look at what "input" it gets (reading the pins or using higher level abstractions such as Serial or other types of Communication protocol exchanging data) and do something with that information. if the code can handle random stuff, then you'll have flexibility, if you only recognize one type of input, then you are more limited. the code you upload in the Arduino is what defines the capabilities.
In turn does that mean that all inputs for arduino are converted into values? For example, is pressing a button assigned a certain value?
What you describe is at a higher level of abstraction. at hardware level - and if things are wired in the right way - pressing a button will change a pin voltage to LOW or HIGH.
if your program happens to check the voltage on that pin at that moment, then the code will know the status of the pin and you can decide what to do in the code.
There are libraries abstracting the lower level if you don't want to bother with that part at this stage, so if you take a button library you can define a button object connected to a pin and tell that object to trigger a specific function when the button is pressed. What you see when programming with such an Object is hiding (abstracting) the hard reality of checking pin values, dealing with bouncing etc which still happens for you.
--> would suggest you learn the basics of programing in C and C++ and perform a few basic Arduino tutorials; Everything then will become much clearer.