Lambda Calculus에 기반한 함수형 언어 Haskell을 이용하여 Lambda Calculator Lexer를 만들어보겠다.
이를테면 다음과 같은 실행 결과를 얻을 수 있다.
lexer :: [Char] -> [Char] -> [[Char]]
lexer token [] =
if token == []
then []
else [token]
lexer token (' ':xs) =
if token == []
then lexer [] xs
else [token] ++ (lexer [] xs)
lexer token (x:xs) =
if ([ a | a<-"\\.+-*/()", a==x]==[])
then -- constructing identifier
if token == []
then lexer [x] xs
else lexer (token++[x]) xs
else -- add an operator
if token == []
then [[x]] ++ (lexer [] xs)
else [token]++[[x]] ++ (lexer [] xs)
이를테면 다음과 같은 실행 결과를 얻을 수 있다.
*Main> lexer [] "\\f x. f (plus x) 0"
["\\","f","x",".","f","(","plus","x",")","0"]



덧글