June 7, 20178 yr I often see that FileMaker native functions use square brackets to define lists, like let ( [ ~var1 = 1 ; ~var2 = 2 ] ~var1 + ~var2 ) Or JSON functions, that actually seem to be "variadic" in the sense that they take a variable number of arguments: JSONSetElement ( "{}" ; [ "id" ; "FB4" ; JSONString ] ; [ "name" ; "Vanilla Cake" ; JSONString ] ; [ "price" ; 17.5 ; JSONNumber ] ; [ "stock" ; 12 ; JSONNumber ] ; [ "category" ; "Cakes" ; JSONString ] ; [ "special" ; true ; JSONBoolean ] ) ] Now, I've been searching for a way to do custom variadic functions, but it seems impossible. And the official documentation doesn't mention the square brackets' real meaning from the language standpoint. What are these "array-like" things exactly? Is there a way to exploit them in custom functions or is it reserved for native functions only? Thanks
June 7, 20178 yr There is no way to define a custom function with a variable number of arguments, or with optional arguments. At most, you can call a function with a list of values as the argument, and have the function recurse over the list. Edited June 7, 20178 yr by comment
June 7, 20178 yr Author Kinda figured it out that already, custom functions do not fully exploit the language. What about the square brackets?
June 7, 20178 yr Author 1 minute ago, comment said: What about them? Just what are they for exactly, the docs don't say how they work and if they are exploitable in some way by custom functions. Edited June 7, 20178 yr by Mc128k
June 7, 20178 yr you can't exploit them for custom functions. They work for those native functions that can take a variable set of 'instructions'. Like the Substitute() function that can do substitute a number of combos in one call.
Create an account or sign in to comment