&
Meta-Function (ขาเข้าทางเลือก / ข้อมูลจำเพาะขาออก)
วิธีการดั้งเดิมในการระบุจำนวนของอาร์กิวเมนต์ที่ป้อนเพื่อส่งผ่านไปยังฟังก์ชันคือการใช้$
ฟังก์ชันเมตา
2$: % Two-input version of :
ในทำนองเดียวกันเมื่อต้องการระบุจำนวนเอาต์พุตอาร์กิวเมนต์คุณสามารถใช้#
ฟังก์ชัน meta- ระบุจำนวนเอาต์พุตอาร์กิวเมนต์
2#S % Two-output version of sort
หรือถ้าคุณผ่านตัวเลขที่มากกว่าจำนวนอาร์กิวเมนต์เอาท์พุทที่กำหนดไว้สำหรับฟังก์ชั่นเฉพาะการmod(N, numberOfOutputs) + 1
ส่งออกจะถูกส่ง
4#S % Get only the second output of sort
คุณสามารถระบุโลจิคัลอาร์เรย์เพิ่มเติมเป็นอินพุต#
เพื่อดึงเฉพาะอาร์กิวเมนต์เอาต์พุตที่ระบุเท่านั้น
TFT#u % Three output version of unique and discard the second output
ข้อมูลจำเพาะอินพุต / เอาท์พุตทั้งหมดนี้มีประโยชน์แต่เพิ่มจำนวนไบต์ของคุณอย่างรวดเร็ว ในการจัดการกับเรื่องนี้ MATL ได้แนะนำ&
meta-function ในรุ่น 17.0.0ปล่อย &
ฟังก์ชันเมตานี้ทำหน้าที่เป็นทางลัดสำหรับสเปคอินพุตหรือเอาต์พุตเฉพาะสำหรับฟังก์ชั่น ลองดูความหมายนั่น
ในตัวอย่างของเราด้านบนเราต้องการใช้เวอร์ชันสองอินพุตของ:
(สร้างเวกเตอร์ที่มีค่าที่เว้นระยะเท่ากัน) ในขณะที่จำนวนอาร์กิวเมนต์เริ่มต้นที่ป้อนเข้า:
คือ1
(สร้างอาร์เรย์จาก[1...N]
) เป็นเรื่องธรรมดามากที่ผู้ใช้ต้องการระบุค่าเริ่มต้นของช่วงที่ต้องการอินพุตที่สอง ดังนั้นสำหรับ:
เราได้กำหนดไว้ให้เป็นทางลัดสำหรับ&
2$
10 % Push 10 to the stack
12 % Push 12 to the stack
2$: % Create an array: [10, 11, 12]
ตอนนี้จะกลายเป็นดังต่อไปนี้บันทึกไบต์ !
10 12 &:
เราจะทราบได้อย่างไรว่าจำนวนข้อโต้แย้งสำรองคืออะไร?
ข้อมูลจำเพาะอินพุต / เอาต์พุตที่&
แปลเป็นฟังก์ชันเฉพาะซึ่งเราเพิ่มประสิทธิภาพการประหยัดไบต์
ส่วนอาร์กิวเมนต์อินพุต / เอาต์พุตของคำอธิบายวิธีใช้สำหรับแต่ละฟังก์ชันได้รับการอัพเดตเพื่อระบุว่าจำนวนอินพุต / เอาต์พุตทางเลือกนี้คืออะไร (ถ้ามี) จำนวนที่เป็นไปได้ของอาร์กิวเมนต์อินพุตหรือเอาต์พุตจะแสดงเป็นช่วงและค่าดีฟอลต์สำหรับแต่ละอาร์กิวเมนต์จะแสดงในวงเล็บ ข้อมูลจำเพาะอินพุต / เอาต์พุตที่สามารถทดแทนด้วย&
จะปรากฏขึ้นหลังจาก/
ตัวละครในวงเล็บ
นี่คือส่วนอาร์กิวเมนต์อินพุต / เอาต์พุตของคำอธิบายวิธีใช้ :
+- Min-Max range of # of inputs
| +----- Alt. Default # of inputs
| |
V V
1--3 (1 / 2); 1 <--- Possible / Default # of outputs
^
|
Default # of inputs
คุณตัดสินได้อย่างไร &
ว่าแต่ละฟังก์ชันมีความหมายอย่างไร
อย่างระมัดระวัง. การใช้StackExchange APIเราสามารถดาวน์โหลดคำตอบ MATL ทั้งหมดที่เคยถูกใช้ในความท้าทาย PPCG ด้วยการแยกคำตอบแต่ละคำตอบจากนั้นเราสามารถกำหนดความถี่ที่แต่ละข้อมูลจำเพาะอินพุต / เอาต์พุตถูกใช้สำหรับแต่ละฟังก์ชั่น การใช้ข้อมูลนี้เราจึงสามารถระบุข้อมูลจำเพาะอินพุต / เอาท์พุตอย่างมีอคติที่&
เมตาฟังก์ชั่นควรเป็นตัวแทนสำหรับแต่ละฟังก์ชั่น บางครั้งก็ไม่มีผู้ชนะที่ชัดเจนในขณะนี้ฟังก์ชั่นจำนวนมากยังไม่ได้&
กำหนด
นี่คือสคริปต์ที่เราใช้ (น่าเสียดายที่มันเขียนใน MATLAB และไม่ใช่ MATL)
และนี่คือตัวอย่างของฮิสโตแกรมของ$
/ #
การใช้งาน