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)