使用Erlang,我可以这样做:
"kapa" ++ D = "kapagama". % D now has a value "gama"
有没有办法放置"变量"在左侧位置?像
这样的东西D ++ "gama" = "anyLengthStringgama".
对于此表达式,shell返回错误:
* 1: illegal pattern
奖金问题:有人可以解释为什么它不起作用吗?它背后的逻辑是什么?
答案 0 :(得分:14)
"kapa" ++ D = "kapagama".
只是
的语法糖[$k, $a, $p, $a | D] = "kapagama".
这只是
的语法糖[$k|[$a|[$p|[$a|D]]]] = "kapagama".
此代码没有任何对应物:
D ++ "gama" = "kapagama".
这可以是语法糖。正如Steve Vinoski写的那样,你必须使用lists:reverse/1
"amag" ++ D = lists:reverse("kapagama"), lists:reverse(D).
或使用re
模块。
答案 1 :(得分:7)
为此,您应该使用regular expression matching,或使用几个列表反转:
1> "amag" ++ D = lists:reverse("anyLengthStringgama").
"amaggnirtShtgneLyna"
2> lists:reverse(D).
"anyLengthString"