{"name":"collatz.nu","source":"// collatz.nu — Collatz conjecture (3n + 1)\n//\n// Demonstrates:\n//   - While loops (~ cond { body })\n//   - Conditionals (? cond then else)\n//   - Prefix arithmetic (+, *, /, %)\n//   - Mutable state updates\n\n@ collatz i start → v {\n    : ~ i current start\n    : ~ i steps 0\n\n    ( nurl_print `Collatz sequence for ` )\n    ( nurl_print ( nurl_str_int current ) )\n    ( nurl_print `:\\n` )\n\n    ~ > current 1 {\n        ( nurl_print ( nurl_str_int current ) )\n        ( nurl_print ` -> ` )\n\n        : b is_even == 0 % current 2\n\n        ? is_even {\n            = current / current 2\n        } {\n            = current + * 3 current 1\n        }\n\n        = steps + steps 1\n    }\n\n    ( nurl_print `1\\nTotal steps: ` )\n    ( nurl_print ( nurl_str_int steps ) )\n    ( nurl_print `\\n` )\n}\n\n@ main → i {\n    // 27 is a classic starting number that takes 111 steps!\n    ( collatz 27 )\n    ^ 0\n}\n","bytes":889}