1> Database = [ {francesco, harryPotter}, {simon, jamesBond},
{marcus, jamesBond}, {francesco, daVinciCode} ].
...
2> [Person || {Person,_} <- Database]. %%Person 是个变量
[francesco,simon,marcus,francesco]
3> [Book || {Person,Book} <- Database, Person == francesco].
[harryPotter,daVinciCode]
4> [Book || {francesco,Book} <- Database]. %%francesco是个atom,Book是变量
[harryPotter,daVinciCode]
5> [Person || {Person,daVinciCode} <- Database].
[francesco]
6> [Book || {Person,Book} <- Database, Person /= marcus].
[harryPotter,jamesBond,daVinciCode]
7> [Person || {Person,Book} <- Database, Person /= marcus].
[francesco,simon,francesco]
8> [{Book, [Person || {Person,B} <- Database, Book==B ]} || {_,Book} <- Database]. %%Book 和B分别是变量,进行条件判断
[{harryPotter,[francesco]},
{jamesBond,[simon,marcus]},
{jamesBond,[simon,marcus]},
{daVinciCode,[francesco]}]
9> [{Book,[ Person || {Person,Book} <- Database ]} || {_,Book} <- Database]. %%Book出现3次都是变量不会进行模式匹配,不属于多次赋值的范畴
[{harryPotter,[francesco,simon,marcus,francesco]},
{jamesBond,[francesco,simon,marcus,francesco]},
{jamesBond,[francesco,simon,marcus,francesco]},
{daVinciCode,[francesco,simon,marcus,francesco]}]
{marcus, jamesBond}, {francesco, daVinciCode} ].
...
2> [Person || {Person,_} <- Database]. %%Person 是个变量
[francesco,simon,marcus,francesco]
3> [Book || {Person,Book} <- Database, Person == francesco].
[harryPotter,daVinciCode]
4> [Book || {francesco,Book} <- Database]. %%francesco是个atom,Book是变量
[harryPotter,daVinciCode]
5> [Person || {Person,daVinciCode} <- Database].
[francesco]
6> [Book || {Person,Book} <- Database, Person /= marcus].
[harryPotter,jamesBond,daVinciCode]
7> [Person || {Person,Book} <- Database, Person /= marcus].
[francesco,simon,francesco]
8> [{Book, [Person || {Person,B} <- Database, Book==B ]} || {_,Book} <- Database]. %%Book 和B分别是变量,进行条件判断
[{harryPotter,[francesco]},
{jamesBond,[simon,marcus]},
{jamesBond,[simon,marcus]},
{daVinciCode,[francesco]}]
9> [{Book,[ Person || {Person,Book} <- Database ]} || {_,Book} <- Database]. %%Book出现3次都是变量不会进行模式匹配,不属于多次赋值的范畴
[{harryPotter,[francesco,simon,marcus,francesco]},
{jamesBond,[francesco,simon,marcus,francesco]},
{jamesBond,[francesco,simon,marcus,francesco]},
{daVinciCode,[francesco,simon,marcus,francesco]}]