docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates whether the solution leverages prelude.ls list-position helpers to implement the boundary summary, outer-trim, positional lookup, and emptiness checks described in the spec. Points reward direct use of the library APIs instead of manual indexing or bespoke length logic.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Prelude import",
"description": "Imports the needed helpers from `prelude-ls` (e.g., `List.head`/`first`, `List.last`, `List.tail`, `List.initial`, `List.at`, `List.empty`) rather than recreating them locally.",
"max_score": 10
},
{
"name": "Bookend helpers",
"description": "`bookendSummary` derives starting and ending values via `List.head`/`first` and `List.last` instead of array index math or manual loops.",
"max_score": 25
},
{
"name": "Empty check",
"description": "Uses `List.empty` to detect no-items cases (for bookend and empty-check behaviors) rather than checking `length` or comparing to `[]`.",
"max_score": 15
},
{
"name": "Trim with tails",
"description": "`trimOuter` removes the first and last elements by combining `List.tail` and `List.initial` (or `List.initial(List.tail(...))`) instead of slicing or manual splicing.",
"max_score": 25
},
{
"name": "Indexed access",
"description": "`pickAt` relies on `List.at` for both positive and negative index lookups, avoiding custom offset arithmetic.",
"max_score": 25
}
]
}