chiark / gitweb /
21a: pull out opcode decoding
authorBen Harris <bjh21@bjh21.me.uk>
Fri, 31 May 2024 13:01:24 +0000 (14:01 +0100)
committerBen Harris <bjh21@bjh21.me.uk>
Fri, 31 May 2024 13:01:24 +0000 (14:01 +0100)
21/21a.bqn

index 50226b4562e77589350c19178e42375873083723..51d76b086687ba4599b8382ff6ff9fa5bf1c3ace 100644 (file)
@@ -6,10 +6,10 @@ Prep←{
 Main←{
   monkeys←⟨⟩•HashMap⟨⟩
   {(⊑𝕩) monkeys.Set (1↓𝕩) }¨𝕩
+  _decode←{⊑("+-*/"⊐𝕗)⊏⟨+,-,×,÷⟩}
   Eval←{ 𝕊⟨number⟩: number;
     𝕊⟨x, opcode, y⟩:
-      op←⊑("+-*/"⊐opcode)⊏⟨+,-,×,÷⟩
-      (Eval monkeys.Get x) Op (Eval monkeys.Get y)
+      (Eval monkeys.Get x) opcode _decode (Eval monkeys.Get y)
   }
   Eval monkeys.Get "root"
 }