वे अलग हैं।
प्रथम श्रेणी के कार्य
एक भाषा में मान जो समान रूप से पूरे संभाले जाते हैं उन्हें "प्रथम श्रेणी" कहा जाता है। उन्हें डेटा संरचनाओं में संग्रहीत किया जा सकता है, तर्कों के रूप में पारित किया जा सकता है, या नियंत्रण संरचनाओं में उपयोग किया जा सकता है।
वे भाषाएँ जो फ़ंक्शन प्रकारों के साथ मानों का समर्थन करती हैं, और उन्हें गैर-फ़ंक्शन मानों के समान मानती हैं, उन्हें "प्रथम श्रेणी के कार्य" कहा जा सकता है।
उच्चतर कार्य
प्रथम श्रेणी के कार्यों के परिणामों में से एक यह है कि आप किसी फ़ंक्शन को किसी अन्य फ़ंक्शन के तर्क के रूप में पास करने में सक्षम होना चाहिए। बाद का कार्य अब "उच्च क्रम" है। यह एक फ़ंक्शन है जो फ़ंक्शन को तर्क के रूप में लेता है।
विहित उदाहरण "मानचित्र" है
map :: (a -> b) -> [a] -> [b]
map f [] = []
map f (x:xs) = f x : map f xs
यही है, यह एक फ़ंक्शन और एक सरणी लेता है, और प्रत्येक तत्व पर लागू फ़ंक्शन के साथ एक नया सरणी देता है।
कार्यात्मक भाषाएं - ऐसी भाषाएं जहां फ़ंक्शन निर्माण कार्यक्रमों के प्राथमिक साधन हैं - सभी में प्रथम श्रेणी के कार्य हैं। अधिकांश में उच्चतर कार्य कार्य भी होते हैं (एक्सेल जैसी भाषाएं होने का बहुत ही दुर्लभ अपवाद, जिसे कार्यात्मक कहा जा सकता है, लेकिन उच्चतर क्रम नहीं)।