<div dir="ltr">Hi,<div><br></div><div>Now I read Joe's book titled Programming Erlang 2nd Edition. I practice some functions such as for/3, quicksort/1, pythag/1, and perms/1, and perms/1 is the function that hard to understand.</div><div><br></div><div>I understand comprehension lists, I fully understand for/3, I fully understand quicksort/1, pythag/1. But it's really hard for me to understand <font face="monospace">perms/1</font>. Please teach me how to read and understand this <font face="monospace">perms/1</font> function.</div><div><br></div><div><font face="monospace">perms([]) -> [[]];<br>perms(List) -> [ [H|T] || H <- List, T <- perms(List--[H]) ].</font><br></div><div><br></div><div>Output:<br><font face="monospace">1> lib_misc:perms("123").<br>["123","132","213","231","312","321"]</font><br></div><div><br></div><div>Please enlightenment<br><br>Thank you</div><div><br></div><div><br></div><div><br></div></div>