Haskell - Calculadora postfixa P44331


Statement
 

pdf   zip

html

Escriviu un programa en Haskell que avalui expressions escrites en notació postfixa sota la presència de possibles errors.

Cada expressió es troba escrita en una línia i és sintàcticament correcta. Una expressió està formada per una seqüència de paraules que poden ser nombres naturals o operadors de suma, resta, producte i divisió.

El resultat d’una expressió és de tipus Either String Int i es correspon a un resultat natural o bé un error: Els nombres negatius resultants de restes porten a l’error "neg", la divisió per zero porta a l’error "div0" i els nombres no naturals resultants de divisions porten a "divE". En el cas d’haver-hi més d’un error en una expressió, cal reportar el de més a l’esquerra.

Public test cases
  • Input

    10 1 + 2 *
    2 10 1 + *
    3 4 + 7 11 * + 2 2 - *
    4 3 -
    3 4 -
    12 3 /
    12 0 /
    12 5 /
    5 1 1 + / 5 0 / +
    666
    

    Output

    Right 22
    Right 22
    Right 0
    Right 1
    Left "neg"
    Right 4
    Left "div0"
    Left "divE"
    Left "divE"
    Right 666
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Official solutions
    Haskell
    User solutions
    Haskell