Skip to main content
October 12, 2021
Solved

Meaning of underscore( _ ) in a!pickerFieldCustom Component

  • October 12, 2021
  • 5 replies
  • 0 views

I have a question while using the a!pickerFieldCustom Component example in Document.

a!localVariables(
  local!pickedState,
  local!stateLabels: { "Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming" },
  local!stateAbbreviations: { "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY" },
  a!pickerFieldCustom(
    label: "State of Residence",
    instructions: "Value saved: " & local!pickedState,
    placeholder: "Type to select the employee's state of residence",
    maxSelections: 1,
    suggestFunction: rule!ucArrayPickerFilter(
      filter:_ , 
      labels: local!stateLabels, 
      identifiers: local!stateAbbreviations
    ),
    selectedLabels: a!forEach(
      items: local!pickedState,
      expression: index(local!stateLabels, wherecontains(fv!item, local!stateAbbreviations))
    ),
    value: local!pickedState,
    saveInto: local!pickedState
  )
)

I wonder what the meaning of underscore ( _ ) in line 11 in this code.

Below is a link to the page I referenced.

https://docs.appian.com/suite/help/21.3/recipe-configure-an-array-picker.html

Best answer by peter.lewis

The technical term for the underscore is partial evaluation. It used to be something that was used pretty frequently in Appian. For example, the precursor to the a!forEach() function was called apply() and it often required using an underscore. However, with the introduction of newer functions, I believe this is the only place remaining that still uses an underscore.

Basically its purpose is that it allows you to evaluate the function without having that value defined yet. So if you add an underscore to the filter, it tells Appian that it doesn't need a value for that to render the component. However, once it does have a value for what the user typed in, this value will be inserted into the location where the underscore is provided and re-evaluated with the search text.

5 replies

stefanhelzle0001
Brainy
October 12, 2021

This will be the actual value at run-time. Check docs:

docs.appian.com/.../Expressions.html

peter.lewis
Employee
October 12, 2021

The technical term for the underscore is partial evaluation. It used to be something that was used pretty frequently in Appian. For example, the precursor to the a!forEach() function was called apply() and it often required using an underscore. However, with the introduction of newer functions, I believe this is the only place remaining that still uses an underscore.

Basically its purpose is that it allows you to evaluate the function without having that value defined yet. So if you add an underscore to the filter, it tells Appian that it doesn't need a value for that to render the component. However, once it does have a value for what the user typed in, this value will be inserted into the location where the underscore is provided and re-evaluated with the search text.

October 13, 2021

Thank you for the reply. It helped me understand.