Yuqori darajadagi xabar - Higher order message

A yuqori buyurtma xabari (XOM) kompyuterda dasturlash tili shaklidir yuqori darajadagi dasturlash argument sifatida boshqa xabarlarga ega bo'lgan xabarlarga ruxsat beradi. Kontseptsiya joriy etildi MacHack 2003[1][2] tomonidan Marsel Vayxer va 2005 yilda Marsel Vayher va tomonidan yanada to'liq shaklda taqdim etilgan Stefan Dukuz.[3] To'plamlar to'plamini nomlamasdan ko'chadan yozish mumkin, yuqori darajadagi xabarlarni nuqta qo'ymaslik shakli sifatida ko'rish mumkin yashirin dasturlash.

Misollar

Oddiy ravishda Kichik munozarasi kodi, HOM-dan foydalanmasdan, ish haqi 1000 ga teng bo'lgan xodimlarning to'plamini olish quyidagi kod bilan amalga oshiriladi:

 maoshli := xodimlar tanlang: [ :har biri | har biri ish haqi: 1000 ]

Biroq, HOM-dan foydalanib, uni quyidagicha ifodalash mumkin:

 maoshli := xodimlar tanlang hasSalary: 1000.

Bu yerda, tanlang yuqori darajadagi buyurtma xabari va hasSalary: natija emas, balki tanlangan xabarning o'zida chaqirilishi tushuniladi. Ushbu funktsiyani amalga oshirish uchun Smalltalk tili o'zgartirilmagan. Buning o'rniga, tanlang degan xabarni qaytaradi reishes The tanlang yuboring, shundan keyin hasSalary: xabar.

Yana bir misol - kelajakda yuboriladigan xabarlardan foydalanish Croquet loyihasi:[4]

 (kub kelajak:1000) addRotationAroundY:10.

Ushbu misolda kelajak: xabar sabab bo'ladi addRotationARoundY: 1 soniyadan keyin kub ob'ektiga yuboriladigan xabar.

Farzandlikka olish

In mos yozuvlar amalga oshirish Maqsad-C Objective-C-da, ularga yuborilgan xabarni tushunmaydigan narsalar, ularni hanuzgacha maxsus kanca usulida etkazib berish xususiyatidan foydalanadi. oldinga:. Yuqori darajadagi xabarlar ushbu xususiyatni o'z ichiga olgan bir qator tillarda amalga oshirildi Yoqut va Smalltalk.[5]

ECMAScript Harmony-ning ishonchli vakillarining hujjatlari Catchall proksi-serverlari uchun ariza sifatida yuqori darajadagi xabarlarni alohida eslatib o'tadilar.[6]

Boshqa tillardagi o'xshash tushunchalar

Dasturlash tili J orasidagi farqni ajratib turadi fe'llar va zarflar. Qo'shimchalar fe'llarning ishlashini o'zgartiradi. Bu keyingi buyruqlarni (fe'llarni) o'zgartiradigan yuqori darajadagi xabarlarga (qo'shimchalar) o'xshaydi. Yuqoridagi Kroket misolida addRotationAroundY:. xabar hanuzgacha yuboriladi va odatdagi ma'noga ega, ammo uni etkazib berish o'zgartirilgan kelajak: 1000 kelajakda biron bir vaqt ichida yuboriladi.

Adabiyotlar

  1. ^ MacHack HOM taqdimoti
  2. ^ O'Reilly macdevcenter maqolasi
  3. ^ ProceedingDLS '05 Dinamik tillar bo'yicha 2005 yilgi simpozium materiallari [1]
  4. ^ "Croquet System haqida umumiy ma'lumot, 6-bet" (PDF). Arxivlandi asl nusxasi (PDF) 2012-04-26. Olingan 2012-05-18.
  5. ^ [2], [3] Arxivlandi 2012-02-03 da Orqaga qaytish mashinasi
  6. ^ [4]