Erlang发送括号数据
我在Erlang执行机器人足球代理。我无法发送类似的数据 (init myteam(第14版)) 或 (踢力角) 到Robocup足球模拟器服务器,其中功率和角度是具有一定值的变量[使用gen_udp]。编译器显示语法错误。(括号是数据的一部分) 我想要的是将此数据发送到服务器 ok=gen_udp:send(套接字,“localhost”, 港口, 数据)Erlang发送括号数据,erlang,Erlang,我在Erlang执行机器人足球代理。我无法发送类似的数据 (init myteam(第14版)) 或 (踢力角) 到Robocup足球模拟器服务器,其中功率和角度是具有一定值的变量[使用gen_udp]。编译器显示语法错误。(括号是数据的一部分) 我想要的是将此数据发送到服务器 ok=gen_udp:send(套接字,“localhost”, 港口, 数据) 其中数据必须与上面所示的两个示例完全相同。Hmm,您应该真正显示类似的代码,但是: kick(Power, Angle) ->
其中数据必须与上面所示的两个示例完全相同。Hmm,您应该真正显示类似的代码,但是:
kick(Power, Angle) ->
io_lib:format("(kick ~B ~B)", [Power, Angle]).
init() ->
init(myteam, 14).
init(Team, Version) ->
io_lib:format("(init ~p (version ~B))", [Team, Version]).
是一种开始的方式(未经测试)。如果您想要更快的输出,您可能应该编写一个函数term\u to\u sexp
,然后将任意术语输出为iolist()
(查找iolist,它们非常适合这种工作,而且速度非常快)
term到sexp(A)什么时候是原子(A)->
L=原子到原子列表(A),
;
术语sexp(B)何时为二进制(B)->
B
术语到sexp(T)何时为元组(T)->
术语_到_sexp(元组到_列表(T));
... % 可能是失踪病例
术语到sexp(L)何时为列表(L)->
穿插(“,[term_to_sexp(Item)| | Item[];
散布(X])->[X];
穿插(九月[X|Rest])->
[X,九月|穿插(九月,休息)]。
(也未测试,但只是一个开始)。嗯,您应该真正显示这样的代码,但是:
kick(Power, Angle) ->
io_lib:format("(kick ~B ~B)", [Power, Angle]).
init() ->
init(myteam, 14).
init(Team, Version) ->
io_lib:format("(init ~p (version ~B))", [Team, Version]).
是一种开始(未经测试)的方法。如果您想要更快的输出,您可能应该编写一个函数term\u to\u sexp
,然后将任意术语输出为iolist()
(查找iolist,它们非常适合这种工作,而且速度非常快)
term到sexp(A)什么时候是原子(A)->
L=原子到原子列表(A),
;
术语sexp(B)何时为二进制(B)->
B
术语到sexp(T)何时为元组(T)->
术语_到_sexp(元组到_列表(T));
…%的失踪病例可能
术语到sexp(L)何时为列表(L)->
穿插(“,[term_to_sexp(Item)| | Item[];
散布(X])->[X];
穿插(九月[X|Rest])->
[X,九月|穿插(九月,休息)]。
(也未测试,但需要启动)