由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - How to Parsing function in haskell?
相关主题
有适合存取lisp表达式的database吗?Python擂台:算24点
lisper想学函数语言和高层次抽象的同学看过来
LISP is better than XML, but worse is better?有哪些公司用Lisp开发程序
PostgREST有人生产环境用过没 貌似适合猛糙快CRUD各种语言程序猿被鄙视级别排序 (转载)
parsing bibliography and sorting (转载)学了一圈lisp, haskell, ruby ,python, lua.发觉还是后两者比较有用
问java api的问题板上的高人们能给科普比较functional programming language么
parsing file in node: js or python ?【申明】谁抹黑伟光正的java语言,谁就是人民的敌人。
请教一个parser的问题关于FP
相关话题的讨论汇总
话题: anatom话题: sexp话题: return话题: ansym话题: parens
进入Programming版参与讨论
1 (共1页)
o****i
发帖数: 1706
1
It need to parse function in Lisp format. For example...
(+ 3 4) or (* 3 4 2)
I got a something like below, but it only can parse experession like (3 + 4)
, any advice to improve this? Thanks...
mulop = do{ symbol "*"; return (SExp "*")}
<|> do{ symbol "/"; return (SExp "/")}
addop = do{ symbol "+"; return (SExp "+")}
<|> do{ symbol "-"; return (SExp "-")}
anInt = do d <- digits
ws
return $ IntExp (read d)
anSym = oneOf ['-','*','+','/',':',''','?','>','<','=']
anVar = do first <- letter <|> anSym
rest <- many (letter <|> adigit <|> anSym)
ws
return (SymExp (first:rest))
anAtom = anInt
<|> anVar
<|> parens anAtom
anExp = parens expr
<|> anAtom
expr = term `chainl1` term
term = factor `chainl1` factor
factor = parens expr
<|> anAtom
1 (共1页)
进入Programming版参与讨论
相关主题
关于FPparsing bibliography and sorting (转载)
未来ruby能不能挤掉python问java api的问题
有朋友了解shen和Mark Tarver吗?parsing file in node: js or python ?
python并不算google带火的请教一个parser的问题
有适合存取lisp表达式的database吗?Python擂台:算24点
lisper想学函数语言和高层次抽象的同学看过来
LISP is better than XML, but worse is better?有哪些公司用Lisp开发程序
PostgREST有人生产环境用过没 貌似适合猛糙快CRUD各种语言程序猿被鄙视级别排序 (转载)
相关话题的讨论汇总
话题: anatom话题: sexp话题: return话题: ansym话题: parens