RosettaCodeData/Task/Non-continuous-subsequences/Tcl/non-continuous-subsequences.tcl
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

23 lines
531 B
Tcl

proc subsets l {
set res [list [list]]
foreach e $l {
foreach subset $res {lappend res [lappend subset $e]}
}
return $res
}
proc is_not_continuous seq {
set last [lindex $seq 0]
foreach e [lrange $seq 1 end] {
if {$e-1 != $last} {return 1}
set last $e
}
return 0
}
proc lfilter {f list} {
set res {}
foreach i $list {if [$f $i] {lappend res $i}}
return $res
}
% lfilter is_not_continuous [subsets {1 2 3 4}]
{1 3} {1 4} {2 4} {1 2 4} {1 3 4}