Single line conditional opcode question

So I’ve seen that some opcodes can be used as a single line statement instead of storing the result and then comparing the result on some of the threads of the csound forums. For instance:

if(lenarray:i(SarrayOfStrings) >= 1) then
	;do somethin
endif

Is there documentation that covers the general syntax structure expected for these types of statements? I’m assuming that it’s:

if({opcode}:{i/k/a}({arguments for opcode}) {comparison}) then
     ;do something
endif

but was wondering if someone could clarify if this assumption was correct and if so if the number of arguments has to be 1 or less or if there are any other limitations to be aware of for this sort of single line opcode comparison

Also, although I know the memory consumption difference would be marginal, but for programs that require heavy optimization would this be preferable to storing a result in an i-rate and THEN comparing as I’m assuming the single line comparison would discard/deallocate the result after the comparison where initializing an i-rate variable would keep said variable stored in memory for later (even if it is not needed)

As always, thanks in advance for the help

hi -

here is some info:
https://csound.com/docs/manual/functional.html
https://flossmanual.csound.com/csound-language/functional-syntax

best -
joachim

2 Likes

Thank you for this, don’t know how I missed that section. Cheers!