[eeps] Request for comments on EEP-25 "Unnesting cases"
    Geoff Cant 
    nem@REDACTED
       
    Sat Dec 20 17:10:36 CET 2008
    
    
  
I like the general idea, but am not so sure about leaving out the value
we're falling through.
case voltage() of
    high -> panic()
  ; normal -> continue_operations()
; or case status() of
  ; emergency > set_speed_slow()
  ; normal -> shut_device_down()
end
We miss the fact that the second case statement is tried when the
voltatge() is low. I can see myself 'improving' voltage() to return a
fourth value and forgetting to update this case statement.
Perhaps there's some way to specify the value to match?
case voltage() of
     high -> panic()
   ; normal -> continue_operations()
; or low case status() of
     emergency > set_speed_slow()
   ; normal -> shut_device_down()
end
Then do we allow binding as well?
case voltage() when
       {high, _V} -> panic()
     ; {normal, _V} -> continue_operations()
in     {low, Vs} 
case status() of
       emergency when Vs > 1 > set_speed_slow()
     ; emergency when Vs <= 1 > set_speed_really_slow()
     ; normal -> shut_device_down()
end
I can't quite come up with a syntax for this I really like - it'd be
ideal if voltage() and status() could naturally start at the same
column. The case clause patterns should also align.
I like that this EEP reduces the need for hard to read nested case
statements, but I don't like that in its current form the EEP requires
me to give up explicit case clauses in order to use it.
Cheers,
-- 
Geoff Cant
    
    
More information about the eeps
mailing list