5/23

Sort List of Students by Name

Easy

Given a list of student maps containing name and age, sort the students alphabetically by name in ascending order.


Input

{
a!map(name: "Charlie", age: 21),
a!map(name: "Alice", age: 23),
a!map(name: "David", age: 22),
a!map(name: "Bob", age: 20)
}

Expected Output

{
{name: "Alice", age: 23},
{name: "Bob", age: 20},
{name: "Charlie", age: 21},
{name: "David", age: 22}
}



ri! Rule Inputs

ri!studentsList of Map
{
  a!map(name: "Charlie", age: 21),
  a!map(name: "Alice", age: 23),
  a!map(name: "David", age: 22),
  a!map(name: "Bob", age: 20)
}

Example 1 — Case 1

Input: ri!students
{
  a!map(name: "Charlie", age: 21),
  a!map(name: "Alice", age: 23),
  a!map(name: "David", age: 22),
  a!map(name: "Bob", age: 20)
}
Output:
{
  a!map(name: "Alice", age: 23),
  a!map(name: "Bob", age: 20),
  a!map(name: "Charlie", age: 21),
  a!map(name: "David", age: 22)
}

Example 2 — Case 2

Input: ri!students
{
  a!map(name: "Jira", age: 29),
  a!map(name: "Naruto", age: 32),
  a!map(name: "Sasuke", age: 29),
  a!map(name: "", age: 40),
  a!map(name: "Itachi", age: 40)
}
Output:
{
  a!map(name: "", age: 40),
  a!map(name: "Itachi", age: 40),
  a!map(name: "Jira", age: 29),
  a!map(name: "Naruto", age: 32),
  a!map(name: "Sasuke", age: 29)
}

Example 3 — Case 3

Input: ri!students
{
  a!map(name: "Java", age: 40),
  a!map(name: "Dart", age: 42),
  a!map(name: "Appian", age: 49)
}
Output:
{
  a!map(name: "Appian", age: 49),
  a!map(name: "Dart", age: 42),
  a!map(name: "Java", age: 40)
}

Appian Expression Tips

  • • Use ri!variableName for rule inputs
  • • Use a!localVariables(local!x: …, body) for locals
  • • Use a!forEach(items: …, expression: fv!item) to iterate
  • • Use where() / reject(fn!isnull, list) to filter