or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-10/

{
  "context": "Evaluates how well the solution applies prelude-ls recursion and caching helpers to implement the memoized staircase counter. Scoring emphasizes correct use of `fix` for the recurrence and `memoize` for cache behavior rather than general code quality.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Fix-based recurrence",
      "description": "The recursive step-counting logic is structured with prelude-ls `fix`, avoiding direct self-reference while threading the configured `maxJump` through the fixed-point combinator.",
      "max_score": 35
    },
    {
      "name": "Memoize wrapper",
      "description": "Computed step totals are cached via prelude-ls `memoize` (or the package-level equivalent), wrapping the recurrence so identical inputs reuse stored values rather than recalculating.",
      "max_score": 30
    },
    {
      "name": "Cache hits",
      "description": "Repeated calls such as `countWays(7)` demonstrably hit the `memoize` cache (no additional recurrence evaluations or loops), aligning with the `getEvaluations` contract.",
      "max_score": 15
    },
    {
      "name": "Cache reset",
      "description": "`clearCache` restores a fresh `memoize` cache (e.g., by reinstantiating the memoized function) so subsequent calls recompute and then store new entries.",
      "max_score": 10
    },
    {
      "name": "Package import",
      "description": "The solution imports `fix` and `memoize` directly from prelude-ls (or its namespaced exports) instead of reimplementing equivalent behavior.",
      "max_score": 10
    }
  ]
}