45 lines
951 B
Elm
45 lines
951 B
Elm
--True and False directly represent Boolean values in Elm
|
|
--For eg to show yes for true and no for false
|
|
if True then "yes" else "no"
|
|
|
|
--Same expression differently
|
|
if False then "no" else "yes"
|
|
|
|
--This you can run as a program
|
|
--Elm allows you to take anything you want for representation
|
|
--In the program we take T for true F for false
|
|
import Html exposing(text,div,Html)
|
|
import Html.Attributes exposing(style)
|
|
|
|
type Expr = T | F | And Expr Expr | Or Expr Expr | Not Expr
|
|
|
|
evaluate : Expr->Bool
|
|
evaluate expression =
|
|
case expression of
|
|
T ->
|
|
True
|
|
|
|
F ->
|
|
False
|
|
|
|
And expr1 expr2 ->
|
|
evaluate expr1 && evaluate expr2
|
|
|
|
Or expr1 expr2 ->
|
|
evaluate expr1 || evaluate expr2
|
|
|
|
Not expr ->
|
|
not (evaluate expr)
|
|
|
|
--CHECKING RANDOM LOGICAL EXPRESSIONS
|
|
ex1= Not F
|
|
ex2= And T F
|
|
ex3= And (Not(Or T F)) T
|
|
|
|
main =
|
|
div [] (List.map display [ex1, ex2, ex3])
|
|
|
|
display expr=
|
|
div [] [ text ( toString expr ++ "-->" ++ toString(evaluate expr) ) ]
|
|
--END
|