or run

npx @tessl/cli init
Log in

Version

Files

docs

function-utilities.mdindex.mdlist-operations.mdmathematical-operations.mdobject-operations.mdstring-processing.md
tile.json

rubric.jsonevals/scenario-1/

{
  "context": "Evaluates whether the solution composes and splits queues using prelude-ls list transforms (reverse, slice/take/drop, splitAt, concat/concatMap/flatten) rather than manual array manipulation. Emphasis is on applying the library to trim sections, flatten results, and pivot-split queues immutably.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Trim with take/drop",
      "description": "Implements per-section trimming by chaining prelude-ls `drop` (or `slice` equivalent) with `take` to honor the options, instead of manual indexing or mutating loops.",
      "max_score": 30
    },
    {
      "name": "Flatten concat",
      "description": "Builds the composed queue via prelude-ls concatenation helpers (`concat`, `concatMap`, and/or `flatten`) to merge processed sections in order, avoiding manual pushes or nested loops.",
      "max_score": 25
    },
    {
      "name": "Tail reversal",
      "description": "Uses prelude-ls `splitAt` (or `slice` plus `splitAt`) with `reverse` to isolate and invert only the final `reverseTailCount` items, leaving the leading portion untouched.",
      "max_score": 20
    },
    {
      "name": "Pivot split helper",
      "description": "Implements the helper using prelude-ls `splitAt` (or equivalent library slicing) to return `[before, after]` without altering the original queue.",
      "max_score": 15
    },
    {
      "name": "Immutable by library",
      "description": "Relies on prelude-ls list utilities (e.g., `take`, `drop`, `concat`, `flatten`, `reverse`) to keep inputs unchanged, avoiding native in-place methods like `push`, `splice`, or `reverse`.",
      "max_score": 10
    }
  ]
}