For arrays you can pass them by there UID.
Put all your arrays in a family and then pass the UID as a parameter. When your in the function pick the instance of the family by uniqueUID and fill in Function.Parameter(0), or whatever index it is, for the expression.
*Edit
Booleans are most used when returning True or False values. A global boolean wouldn't really be useful because it's not connected to anything.
Example: "Is the character moving?" Return Boolean: True (yes) or False (no)
If the boolean is global it is just floating out there by it self and referencing nothing.