タイトルはすべて私の関数にリストを渡すので、 L = [{"Socrates"、 "fork1、fork2"}、{"Confucius" "プラント"、 "フォーク5、フォーク1"}リスト内のタプルから一致する要素を抽出する
私はパスします。一致する値と一致する値が見つかったらリストの2番目の要素だけを渡したいとします。たとえば、 "Socrates"を渡すと "fork1、fork2"に戻ります。
ここに私それに関わる2つの機能
whichFork({Name},[X|Xs]) ->
Fork = element(2,X),%get forks
Phil = element(1,X),%get phil name
Check = are_the_same(Phil,Name),%find out if they match
case Check of
true-> Fork;%return forks in string
false->whichFork(Name,Xs)%false repeat iterating the list
end;
whichFork(_,[]) -> %not found
false.
are_the_same(A,B) when A=:=B ->
true;
are_the_same(_,_) ->
false.
サイト上で検索したところ、そのような質問はありませんでしたので、どんな助けにもなりました。