From ed705008a8d39177a7cc5a047705a2e3700b6c2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingy=20d=C3=B6t=20Net?= Date: Sun, 17 Dec 2023 07:18:17 -0800 Subject: [PATCH] Data update --- Lang/YAMLScript/100-doors | 1 + Task/100-doors/YAMLScript/100-doors.ys | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 120000 Lang/YAMLScript/100-doors create mode 100644 Task/100-doors/YAMLScript/100-doors.ys diff --git a/Lang/YAMLScript/100-doors b/Lang/YAMLScript/100-doors new file mode 120000 index 0000000000..a1f276f73f --- /dev/null +++ b/Lang/YAMLScript/100-doors @@ -0,0 +1 @@ +../../Task/100-doors/YAMLScript \ No newline at end of file diff --git a/Task/100-doors/YAMLScript/100-doors.ys b/Task/100-doors/YAMLScript/100-doors.ys new file mode 100644 index 0000000000..6a5a4400bd --- /dev/null +++ b/Task/100-doors/YAMLScript/100-doors.ys @@ -0,0 +1,15 @@ +!yamlscript/v0 + +defn main(): + say: + "Open doors after 100 passes: + $(apply str interpose(\", \" open-doors()))" + +defn open-doors(): + for: .[[d n] map(vector doors() iterate(inc 1)) :when d] n + +defn doors(): + reduce: + fn [doors idx]: assoc(doors idx true) + into []: repeat(100 false) + map \(dec (% * %)): (1 .. 10)