Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Consider the following Haskell datatype definitions for representing simple lambda calculus terms. data Term = Var String | Application Term Term | Lambda String Term
Consider the following Haskell datatype definitions for representing simple lambda calculus terms. data Term = Var String | Application Term Term | Lambda String Term
Define the following utility functions
a) normalForm :: Term -> Bool, checks if a term is in normal form, meaning it contains no application (no matter how deeply embedded) whose left hand side is a lambda expression
. b) listOVars :: [String], an infinite list of distinct variables that can be used if you want to find a fresh variable.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started