definition: |
groupFuns :: [(String,Int)] -> [(String,(Int,Int))] groupFuns [] = [] groupFuns [(f,i)] = [(f,(i,i))] groupFuns [(f1,i1),(f2,i2)] = if f1==f2 then [(f1,(i1,i2))] else if null f2 then [(f1,(i1,i1))] else [(f1,(i1,i1)),(f2,(i2,i2))] groupFuns ((f1,i1):(f2,i2):(f3,i3):fis) | null f2 && f1==f3 = groupFuns ((f1,i1):(f3,i3):fis) | null f2 = (f1,(i1,i2-1)) : groupFuns ((f3,i3):fis) | f1==f2 = groupFuns ((f1,i1):(f3,i3):fis) | otherwise = (f1,(i1,i2-1)) : groupFuns ((f2,i2):(f3,i3):fis) |
demand: |
argument 1 |
deterministic: |
deterministic operation |
failfree: |
_ |
indeterministic: |
referentially transparent operation |
infix: |
no fixity defined |
iotype: |
{({[]}) |-> {[]} || ({:}) |-> {:,[]}} |
name: |
groupFuns |
precedence: |
no precedence defined |
result-values: |
{:,[]} |
signature: |
[(String, Prelude.Int)] -> [(String, (Prelude.Int, Prelude.Int))] |
solution-complete: |
operation might suspend on free variables |
terminating: |
possibly non-terminating |
totally-defined: |
possibly non-reducible on same data term |