Group Abstract Group Abstract

Message Boards Message Boards

I don't get how FormFunction works

GROUPS:

I tried to get FormFunction[] to work, but I do not get, how the inputs are used in the actual function I define:

simpleFunc[basis_, exponent_] := basis ^ exponent
foFuSiFu = FormFunction[{"Basis" -> "Number", "Exponent" -> "Number"},simpleFunc]

Then entering numbers into the form and evaluating it by

foFuSiFu[]

Does not give my anything and that drives me crazy.

What am I doing wrong?

POSTED BY: Goetz Galuba
Answer
5 months ago

If your definition of simpleFunc and and your definition of foFuSiFu are in the same input, they need to be separated by a semi-colon. Better to put them in separate inputs.

In[1]:= simpleFunc[basis, exponent] := basis^exponent

In[2]:= foFuSiFu = FormFunction[{"Basis" -> "Number", "Exponent" -> "Number"}, simpleFunc]

enter image description here

POSTED BY: Frank Kampas
Answer
5 months ago

The second argument to FormFunction is function that expects a single Association (as is also true of APIFunction). The arguments coming to the FormFunction are available as named slot parameters, written like #Basis. It is not recommended to use uppercase letters to begin symbols, so I would also rename your FormFunction parameters to begin with a lowercase letter. Based on I would rewrite your code as follows:

simpleFunc[basis_, exponent_] := basis ^ exponent
foFuSiFu = FormFunction[{"basis" -> "Number", "exponent" -> "Number"}, simpleFunc[#basis, #exponent]&]
POSTED BY: Joel Klein
Answer
5 months ago

I did copy your version and this still does not work in my notebook in Wolfram Cloud. When I enter values into the form and try to evaluate it with

foFuSiFu[]

it gives me an error every time.

"The server is experiencing unexpected issues and could not process your request. Please try again in a few minutes."

When I do not use uppercase variables I would also need to change the name shown in the CloudDeploy. How do I change the label shown in the deployed form? (The examples in the documentation center have uppercase Variables to achieve that, which brought me to doing it that way to)

POSTED BY: Goetz Galuba
Answer
5 months ago