No, it's not. Condition functions (like the "Units in xxx matching condition") will create a function that takes nothing returns boolean. Try converting the GUI trigger I posted (or even yours) into jass and take a look for yourself.
You have said you don't know jass (or vjass), so please don't make accusations about jass when you don't know what you're talking about. It just makes you look stupid.
If you couldn't pass or return arguments to/from functions why would "takes X returns Y" be part of the syntax?
Take a look at the Blizzard.j
(the code GUI is converted into) and see how many functions don't have "takes nothing returns nothing".
Please show me where in the vjass manual
it says "holy shit guys, we added return types to functions, no longer do you have to set a variable at the end of a function then read it in the calling function. We're now a proper language!".
Matching unit should only
be used in the "Matching condition" part, not
in the loop part - that should still be Picked unit. If you'd read what I said or even looked at my GUI code, you would have realised that.