آزمون مرغابی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
Mallard2.jpg
A mallard, walking like a duck (with ducklings)

آزمون مرغابی نمونه‌ای از استدلال استقرایی است با این بیان که: «اگر چیزی شبیه اردک به نظر می‌رسد، مثل اردک شنا می‌کند و صدای اردک درمی‌آورد، آن چیز احتمالاً اردک است»

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

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

تاریخچه[ویرایش]

شاعر اهل ایندیانا جیمز ویتکام رایلی(به انگلیسی: James Whitcomb Riley) (۱۸۴۹-۱۹۱۶) احتمالا با کلمات بازی کرده زمانی که نوشته است:
زمانی که پرنده ای را می‌بینم که مثل اردک راه می‌رود، مثل اردک شنا می‌کند و مثل اردک کواک کواک می‌کند،‌من این پرنده را اردک می‌نامم.[۱]

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

من نمی‌توانم اثبات کنم که شما کمونیست هستید اما زمانی که پرنده‌ای را می‌بینم که مثل اردک کواک کواک می‌کند، مثل اردک راه می‌رود، مثل اردک شنا می‌کند، پر و پاهای پرده‌دار دارد و با اردک‌ها رفت‌وآمد می‌کند، من قطعا فرض می‌کنم که این پرنده اردک است.[۲]

عبارت بعدا توسط ریچارد کانینگام پترسن(به انگلیسی: Richard Cunningham Patterson Jr)، سفیر ایالات متحده در گواتمالا، طی جنگ سرد رواج پیدا کرد. زمانی که او این عبارت را برای متهم کردن دولت جاکوب آربنز گازمن (به انگلیسی: Jacobo Árbenz Guzmán) به کمونیست بودن استفاده کرد. پترسون دلیل خود را به این شکل ارائه کرد:

فرض کنید پرنده‌ای را درحال راه رفتن در حیاط یک مدرسه ببینید. این پرنده هیج نشانه‌ای ندارد که بگوید یک مرغابی است. اما پرنده به طور قطع شبیه مرغابی است. او درون برکه می‌رود و شما متوجه می‌شوید که او مثل مرغابی شنا می‌کند. سپس منقارش را باز می‌کند و مثل یک مراغابی کواک کواک می‌کند. این‌بار شما یقینا یه این نتیجه می‌رسید که این پرنده یک مرغابی است، چه برچسبی داشته باشد یا نه.[۳]

مرجع بعدی آزمون مرغابی کاردینال ریچارد کوشینگ (به انگلیسی: Cardinal Richard Cushing)است که از این عبارت در سال ۱۹۶۴ در اشاره به فیدل کاسترو(به انگلیسی: Fidel Castro) استفاده کرد.

داگلاس آدامز(به انگلیسی: Douglas Adams ) از این عبارت در کتاب خود، آژانس جامع کارآگاهی دریک جتنلی (به انگلیسی: 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 اعمال می‌کند این است که ورودی‌ها اعمال "+" و "*" را پیاده‌سازی کنند.

  1. [Heim, Michael (2007). Exploring Indiana Highways. Exploring America's Highway. p. 68. ISBN 978-0-9744358-3-1.]،
  2. [hSentinel, John (September 29, 1946). "Communist Expose The Case of the Duck". Milwaukee (WI) Sentinel.]،
  3. Immerman, Richard H. (1982), The CIA in Guatemala: The Foreign Policy of Intervention, Austin, Texas: University of Texas Press, p. 102
  4. Platt, Suzy. Respectfully quoted. Library of Congress, Congressional Research Service. ISBN 978-0-88029-768-4. "Attributed to Richard Cardinal Cushing. Everett Dirksen and Herbert V. Prochnow, Quotation Finder, p. 55 (1971). Unverified."
  5. Adams, Douglas (1987). Dirk Gently's Holistic Detective Agency.
  6. ۶٫۰ ۶٫۱ این قسمت برگرفته از صفحه ویکی‌پدیا انگلیسی است