在我解决离散数学的程序中,我想让用户输入一串逻辑运算;例如,如果用户输入let f (x:y:_) = x && y
,那么我将获得一个f
用于程序其余部分的函数。在 GHCi 中,我可以通过输入let f (x:y:_) = x && y
.
我不知道如何完成这项任务。我已经从包中查看了eval
函数plugins
,但它似乎不是正确的函数。我可以在 Haskell 中执行此操作吗?
我打算使用它的代码是:
type TruthTable = [[Bool]]
type TruthTableResult = [([Bool], Bool)]
solveTable :: ([Bool] -> Bool) -> Integer -> (TruthTableResult)
solveTable f n = let table = truthTable n
result = map f table
in zipWith (\v r -> (v, r)) table result