diff options
Diffstat (limited to '2024/tcl/03.tcl')
-rwxr-xr-x | 2024/tcl/03.tcl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/2024/tcl/03.tcl b/2024/tcl/03.tcl new file mode 100755 index 0000000..d1ff7c9 --- /dev/null +++ b/2024/tcl/03.tcl @@ -0,0 +1,36 @@ +#!/bin/env tclsh + +source lib.tcl +setup 3 + +puts {Part 1: Sum of mul(x,y) calls...} + +set mulsum 0 +set mulsum_cf 0 +set cf 1 +foreach {inst a b} [regexp -all -inline {do\(\)|don't\(\)|mul\((\d+),(\d+)\)} [read $input]] { + switch -- [string range $inst 0 2] { + mul { + set inc [expr {$a * $b}] + incr mulsum $inc + if $cf { + incr mulsum_cf $inc + } + } + do( { + set cf 1 + } + don { + set cf 0 + } + } +} + +close $input + +puts "Sum: $mulsum" + +puts "" +puts {Part 2: ...with control flow.} + +puts "Sum: $mulsum_cf" |