निम्नलिखित एर्लैंग कोड पर विचार करें:हार्सेल के टीसीहान डिफर संदेशों को कैसे करें जैसे एरलांग की संदेश कतारें?
-module(testit).
-export([testit/0]).
testit() ->
Pid = spawn(fun testit_proc/0),
Pid ! final,
Pid ! one,
Pid ! two,
io:format("Root finished~n").
testit_proc() ->
receive
one -> io:format("One~n");
two -> io:format("Two~n")
end,
receive
one -> io:format("One~n");
two -> io:format("Two~n")
end,
receive
one -> io:format("One~n");
two -> io:format("Two~n");
final -> io:format("Final~n")
end,
io:format("Spawn finished~n").
आउटपुट है:
Root finished
One
Two
Final
Spawn finished
final
संदेश की प्रसंस्करण अनिवार्य रूप से पिछली बार प्राप्त होने तक ब्लॉक को पिछले प्राप्त पैटर्न के आधार पर स्थगित कर दिया गया है जो उस संदेश से मेल नहीं खाता है ।
आप हास्केल के टीसीहान के साथ ऐसा कैसे करते हैं?
सहमत हुए। ये अर्थशास्त्र मूल 'चैन' या 'टीसीएचएन' पैकेज में मौजूद नहीं हैं - आपको स्वयं को एक डिफेंडर कतार लागू करना होगा। –