آزمون کلک‌مرغابی

بندانگشتی
بندانگشتی|A mallard, walking like a duck (with ducklings)

آزمون کلک‌مرغابیhttps://www.delgarm.com/roots-of-persian-proverbs/173841-اصطلاح-کلک-رشتی-یا-کلک-مرغابیhttps://akharinkhabar.ir/story/5087488 نمونه‌ای از استدلال استقرایی است با این بیان که: «اگر چیزی شبیه مرغابی به نظر می‌رسد، مانند مرغابی شنا می‌کند و صدای مرغابی درمی‌آورد، آن چیز احتمالاً مرغابی است»

این آزمون در مواردی به کار می‌رود که بتوان شی نامعلومی را به وسیلهٔ علایم ذاتی آن شناسایی کرد. همچنین جزء مباحثات بغرنج دربارهٔ اینکه هر چیزی الزاماً آن‌طور که به نظر می‌رسد نیست نیز به‌شمار می‌رود.

از این منطق در برنامه سازی کامپیوتر نیز، در زبان‌هایی مانند پایتون و روبی استفاده می‌شود که به آن نوع یابی مرغابی می‌گویند.

 تاریخچه 
شاعر اهل ایندیانا جیمز ویتکام رایلی (۱۸۴۹–۱۹۱۶) احتمالاً با کلمات بازی کرده زمانی که نوشته‌است:
زمانی که پرنده‌ای را می‌بینم که مثل اردک راه می‌رود، مثل اردک شنا می‌کند و مثل اردک کواک کواک می‌کند، من این پرنده را اردک می‌نامم.[Heim, Michael (2007). Exploring Indiana Highways. Exploring America's Highway. p. 68. .],

جمله‌بندی رایج‌تر عبارت احتمالاً مدت‌ها بعد توسط امیل میزی، خزامه دار کارگران متحد خودرو، در یک گردهمایی کار در ۱۹۴۶، زمانی که او فردی را به کمونیست بودن متهم کرد، به وجود آمد.

من نمی‌توانم اثبات کنم که شما کمونیست هستید اما زمانی که پرنده‌ای را می‌بینم که مثل اردک کواک کواک می‌کند، مثل اردک راه می‌رود، مثل اردک شنا می‌کند، پر و پاهای پرده‌دار دارد و با اردک‌ها رفت‌وآمد می‌کند، من قطعاً فرض می‌کنم که این پرنده اردک است.[hSentinel, John (September 29, 1946). "Communist Expose The Case of the Duck". Milwaukee (WI) Sentinel.],

عبارت بعداً توسط ریچارد کانینگام پترسن، سفیر ایالات متحده در گواتمالا، طی جنگ سرد رواج پیدا کرد. زمانی که او این عبارت را برای متهم کردن دولت جاکوب آربنز گازمن  به کمونیست بودن استفاده کرد. پترسون دلیل خود را به این شکل ارائه کرد:

فرض کنید پرنده‌ای را در حال راه رفتن در حیاط یک مدرسه ببینید. این پرنده هیج نشانه‌ای ندارد که بگوید یک مرغابی است. اما پرنده به‌طور قطع شبیه مرغابی است. او درون برکه می‌رود و شما متوجه می‌شوید که او مثل مرغابی شنا می‌کند. سپس منقارش را باز می‌کند و مثل یک مرغابی کواک کواک می‌کند. این‌بار شما یقیناً یه این نتیجه می‌رسید که این پرنده یک مرغابی است، چه برچسبی داشته باشد یا نه.Immerman, Richard H. (1982), The CIA in Guatemala: The Foreign Policy of Intervention, Austin, Texas: University of Texas Press, p. 102

مرجع بعدی آزمون مرغابی کاردینال ریچارد کوشینگ است که از این عبارت در سال ۱۹۶۴ در اشاره به فیدل کاسترو استفاده کرد.

داگلاس آدامز از این عبارت در کتاب خود، آژانس جامع کارآگاهی دریک جتنلی تقلید کرده‌است.Platt, Suzy. Respectfully quoted. Library of Congress, Congressional Research Service. . "Attributed to Richard Cardinal Cushing. Everett Dirksen and Herbert V. Prochnow, Quotation Finder, p. 55 (1971). Unverified."

اگر مثل اردک باشد و مثل اردک کواک کواک کند، ما باید حداقل احتمال دهیم که یک پرنده کوچک آبزی از خانواده اردک‌ها داریم.Adams, Douglas (1987). Dirk Gently's Holistic Detective Agency.

 نوع‌یابی مرغابی 
در برنامه‌نویسی کامپیوتر، برای اطمینان از نوع یک متغیر از نوع‌یابی مرغابی استفاده می‌شود. این مستلزم آن است که کنترل نوع متغیر به زمان اجرا به تعویق بیفتد و با استفاده از نوع‌یابی پویا یا بازتابی اجرا شود.

هدف نوع‌یابی مرغابی این است که مناسب بودن نوع متغیر را برای استفاده در جای مشخص، به وسیله روش‌های خاص تعیین کند. اما در نوع‌یابی عادی، مناسب بودن فقط با نوع شیٔ مشخص می‌شود.

 نمونهٔ مفهومی 
شبه‌کد زیر را در نظر بگیرید:

 function calculate(a, b, c) => return (a + b) * c

 example1 = calculate (1, 2, 3)
 example2 = calculate ([1], [2, 3], 2)
 example3 = calculate ('apples ', 'and oranges, ', 3)

 print to_string example1
 print to_string example2
 print to_string example3

در مثال بالا، متغیرها می‌توانند از هر نوعی باشند و تا زمانی که توابع "+" و "*" برای آن شیٔ‌ها معنادار باشد مشکلی پیش نخواهد آمد. خروجی چنین کدی در زبان پایتون با روبی به شکل زیر خواهد بود:

 9
 [1, 2, 3, 1, 2, 3]
 apples and oranges, apples and oranges, apples and oranges,

نوع‌یابی مرغابی می‌توانند مثل چندریختی کار کند، اما بدون وراثت. تنها محدودیتی که تابع calculate اعمال می‌کند این است که ورودی‌ها اعمال "+" و "*" را پیاده‌سازی کنند.

 منابع 

رده:استعاره‌های اشاره به پرندگان
رده:اصطلاح‌ها در زبان انگلیسی
رده:تیغ‌های فلسفی
رده:مفاهیم معرفت‌شناسی
رده:مقاله‌های دارای ویدئو
رده:ویکی‌سازی رباتیک
رده:استدلال