0votos

calculadora en string java en Haskell

por josejuan hace 5 años

Básicamente se ha descrito una calculadora polaca, la cual, es trivial de implementar.

poder resolver operaciones básicas sumar,restar,multiplicar,dividir y potencias en una sola cadena string con operaciones anidadas y mostrar el resultado de la operación digitada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import Data.List 
 
-- Una operación binaria en una calculadora polaca, puede expresarse como 
o f xs = f a b: ys where (a:b:ys) = op xs 
 
 
op []                 = []                      -- Si no hay token, no hay resultado 
op ("sumar"      :xs) = o (+) xs                -- Las operaciones binarias 
op ("restar"     :xs) = o (-) xs 
op ("multiplicar":xs) = o (*) xs 
op ("dividir"    :xs) = o div xs 
op ( x           :xs) = (read x): op xs         -- Una constante 
 
 
-- Pasar las frases indicadas a polaca es inmediato 
calc :: String -> Int 
calc = head . op . filter (not.flip elem ["y", "a", "por"]) . words 
 
{- 
 
    *Main> calc "sumar restar 4 a 5 y multiplicar 2 y sumar 4 y 5" 
    17 
 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.