คำถามติดแท็ก arguments

2
วิธีจัดการรายการอาร์กิวเมนต์ใน nadvice.el
ทำตามคำตอบของคำถามอีกข้อหนึ่งเกี่ยวกับระบบคำแนะนำใหม่ : ในแบบเก่าadvice.elมันเป็นไปได้ที่จะจัดการกับสมาชิกแต่ละคนของรายการอาร์กิวเมนต์ของฟังก์ชั่นที่แนะนำโดยไม่ต้องทำการยืนยันใด ๆ เกี่ยวกับสมาชิกเหล่านั้นที่ไม่ได้จัดการ ตัวอย่างเช่นคำแนะนำต่อไปนี้: (defadvice ansi-term (around prompt-for-name last) (let ((name (read-from-minibuffer "Tag: "))) (and (not (string= name "")) (ad-set-arg 1 (concat "Term: " name))) ad-do-it)) อนุญาตให้มีการจัดเตรียม (เป็นทางเลือก) ของอาร์กิวเมนต์ชื่อบัฟเฟอร์ansi-termในขณะที่ansi-termจะยังคงได้รับอาร์กิวเมนต์แรกโดยการพร้อมท์ตามรูปแบบโต้ตอบของตัวเอง (สำหรับการอ้างอิงในภายหลังansi-termลายเซ็นของคือ(PROGRAM &optional BUFFER-NAME)และรูปแบบการโต้ตอบของมันแจ้งให้ PROGRAM ที่มีค่าเริ่มต้นที่เป็นไปได้หลายประการ แต่ไม่ได้ทำอะไรเกี่ยวกับ BUFFER-NAME) nadvice.elฉันไม่แน่ใจหรือไม่ว่านี้คือในความเป็นไปได้ หากเป็นเช่นนั้นฉันไม่แน่ใจว่าจะสามารถทำได้ ฉันพบสองวิธีในการแทนที่รายการอาร์กิวเมนต์ของฟังก์ชันที่แนะนำ ตัวอย่างเช่นจากcombinators คำแนะนำจาก* info * (elisp) : `:filter-args' Call FUNCTION …
12 advice  arguments 

3
จะเขียนตัวห่อหุ้มฟังก์ชั่น“ pass-through” แบบโปร่งใสได้อย่างไร?
สิ่งที่ฉันหมายความโดย "โปร่งใส 'ผ่าน' ฟังก์ชั่นเสื้อคลุม" คือฟังก์ชั่นขอเรียกมันwrapperว่าผลตอบแทนที่เป็นผลมาจากการส่งผ่านอาร์กิวเมนต์ทุกฟังก์ชั่นอื่น ๆ wrappeeบางอย่างที่ขอเรียกว่า วิธีนี้ทำได้ใน Emacs Lisp หมายเหตุ: wrapperฟังก์ชั่นในอุดมคตินั้นไม่เชื่อเรื่องพระเจ้าเกี่ยวกับwrappeeลายเซ็นของฟังก์ชัน กล่าวคือไม่ทราบจำนวนตำแหน่งตำแหน่ง ฯลฯ ของwrappeeข้อโต้แย้ง มันเพิ่งผ่านการขัดแย้งทั้งหมดของมันไปwrappeeเช่นเดียวกับที่wrappeeได้รับการเรียกเดิม (ไม่จำเป็นต้องยุ่งกับ call stack เพื่อแทนที่ call to wrapperด้วย call to wrappee) ฉันโพสต์คำตอบบางส่วนสำหรับคำถามของฉัน: (defun wrapper (&rest args) (apply 'wrappee args)) นี้จะทำงานเฉพาะเมื่อwrappeeเป็นไม่โต้ตอบ เห็นได้ชัดว่าวิธีการที่ฟังก์ชั่นโต้ตอบได้รับข้อโต้แย้งของพวกเขาแสดงให้เห็นถึง "ช่องทาง" ที่แตกต่างจากสิ่งที่ครอบคลุมโดย(&rest args)คาถา สิ่งที่ฉันยังต้องการคือwrappeeคู่ที่เท่าเทียมกันของ(&rest args)ลายเซ็นสำหรับกรณีที่wrappeeมีฟังก์ชั่นแบบโต้ตอบ (คำถามนี้เกิดจากปัญหาที่อธิบายไว้ในคำถามก่อนหน้านี้ ) ในกรณีที่ต้องการคำชี้แจงเพิ่มเติมเกี่ยวกับสิ่งที่ฉันขอเป็นด้านล่างเป็นตัวอย่างสองประการแสดง Python และ JavaScript ที่เทียบเท่ากับสิ่งที่ฉันต้องการ ใน Python …
10 advice  arguments 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.