Использование охранников в let.. в выражениях

Иногда я пишу такой код

solveLogic :: Int -> Int -> Int
solveLogic a b =
    let 
        x = 1
        brainiac
            | a >= x     = 1
            | a == b     = 333
            | otherwise  = 5
    in
        brainiac

И каждый раз у меня возникает желание написать это без ненужной "мозговой" функции, вот так:

solveLogic :: Int -> Int -> Int
solveLogic a b =
    let 
        x = 1
    in
        | a >= x     = 1
        | a == b     = 333
        | otherwise  = 5

Какой код гораздо более "хаскелевский" ". Есть ли способ сделать это?

18
задан Rijk 29 April 2012 в 14:11
поделиться