haskell: fix string ↔ [Char] equality — palindrome 12/12, conformance 34/34 (269/269)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 18s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 18s
Haskell strings are [Char]. Calling reverse / head / length on a SX raw string transparently produces a cons-list of char codes (via hk-str-head / hk-str-tail in runtime.sx), but (==) then compared the original raw string against the char-code cons-list and always returned False — so "racecar" == reverse "racecar" was False. Added hk-try-charlist-to-string and hk-normalize-for-eq in eval.sx; routed == and /= through hk-normalize-for-eq so a string compares equal to any cons-list whose elements are valid Unicode code points spelling the same characters, and "[]" ↔ "". palindrome.hs lifts from 9/12 → 12/12; conformance 33/34 → 34/34 programs, 266/269 → 269/269 tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"date": "2026-05-07",
|
||||
"total_pass": 266,
|
||||
"total_fail": 3,
|
||||
"total_pass": 269,
|
||||
"total_fail": 0,
|
||||
"programs": {
|
||||
"fib": {"pass": 2, "fail": 0},
|
||||
"sieve": {"pass": 2, "fail": 0},
|
||||
@@ -9,7 +9,7 @@
|
||||
"nqueens": {"pass": 2, "fail": 0},
|
||||
"calculator": {"pass": 5, "fail": 0},
|
||||
"collatz": {"pass": 11, "fail": 0},
|
||||
"palindrome": {"pass": 9, "fail": 3},
|
||||
"palindrome": {"pass": 12, "fail": 0},
|
||||
"maybe": {"pass": 12, "fail": 0},
|
||||
"fizzbuzz": {"pass": 12, "fail": 0},
|
||||
"anagram": {"pass": 9, "fail": 0},
|
||||
|
||||
Reference in New Issue
Block a user