“string

编程入门 行业动态 更新时间:2024-10-27 14:34:36
string_to_term / 1”?(“string_to_term/1”?)

Erlang中是否有这样的功能?

a_function_id_like_to_have("{1,2,{3,4}}") % => {1,2,{3,4}}

(如在哈斯克尔read )

Is there any function in Erlang with this behavior?:

a_function_id_like_to_have("{1,2,{3,4}}") % => {1,2,{3,4}}

(Like read in Haskell)

最满意答案

看看本演示文稿的幻灯片25。

它使用erl_eval , erl_parse和erl_scan 。

1> {ok, Tokens, _} = erl_scan:string("{1,2,{3,4}}."). {ok,[{'{',1}, {integer,1,1}, {',',1}, {integer,1,2}, {',',1}, {'{',1}, {integer,1,3}, {',',1}, {integer,1,4}, {'}',1}, {'}',1}, {dot,1}], 1} 2> {ok, Abstract} = erl_parse:parse_exprs(Tokens). {ok,[{tuple,1, [{integer,1,1}, {integer,1,2}, {tuple,1,[{integer,1,3},{integer,1,4}]}]}]} 3> Bindings = erl_eval:new_bindings(). [] 4> {value, Value, _} = erl_eval:exprs(Abstract, Bindings). {value,{1,2,{3,4}},[]} 5> erlang:display(Value). {1,2,{3,4}} true

Take a look at slide 25 of this presentation.

It makes use of erl_eval, erl_parse, and erl_scan.

1> {ok, Tokens, _} = erl_scan:string("{1,2,{3,4}}."). {ok,[{'{',1}, {integer,1,1}, {',',1}, {integer,1,2}, {',',1}, {'{',1}, {integer,1,3}, {',',1}, {integer,1,4}, {'}',1}, {'}',1}, {dot,1}], 1} 2> {ok, Abstract} = erl_parse:parse_exprs(Tokens). {ok,[{tuple,1, [{integer,1,1}, {integer,1,2}, {tuple,1,[{integer,1,3},{integer,1,4}]}]}]} 3> Bindings = erl_eval:new_bindings(). [] 4> {value, Value, _} = erl_eval:exprs(Abstract, Bindings). {value,{1,2,{3,4}},[]} 5> erlang:display(Value). {1,2,{3,4}} true

更多推荐

本文发布于:2023-08-07 23:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1466170.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:string

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!