আসলে এটি ম্যানুয়ালটিতে ঠিক আছে: https://github.com/magnars/dash.el#anaphoric-function ।
আপডেট: ম্যাক্রো পরিদর্শন এবং সমতলকরণ
আপনি যদি লম্পি ব্যবহার করেন তবে এর মাধ্যমে শুরু করুন:
;; anaphoric version
(--map (* it it) '(1 2 3 4))
এবং বিন্দুটি আগে (--map
, আপনি xfকল করতে lispy-flatten
এবং প্রাপ্ত করতে টিপতে পারেন :
;; anaphoric version
(mapcar (lambda (it) (* it it)) (quote (1 2 3 4)))
এই কোডটির সাথে এটি কিছুটা জটিল, যেহেতু ড্যাশ প্রতিনিধি এবং স্থগিতের জন্য খুব আগ্রহী:
(--reduce (max it acc) '(1 2 3 4))
পরে xfM:
(let ((list-value (quote (1 2 3 4))))
(if list-value (--reduce-from (max it acc)
(car list-value)
(cdr list-value))
(let (acc it)
(max it acc))))
পরে fjfxfM:
(let ((list-value (quote (1 2 3 4))))
(if list-value (let ((acc (car list-value)))
(--each (cdr list-value)
(setq acc (max it acc)))
acc)
(let (acc it)
(max it acc))))
পরে fjxfM:
(let ((list-value (quote (1 2 3 4))))
(if list-value (let ((acc (car list-value)))
(let ((list (cdr list-value))
(it-index 0))
(while list (let ((it (car list)))
(setq acc (max it acc)))
(setq it-index (1+ it-index))
(!cdr list)))
acc)
(let (acc it)
(max it acc))))
বলার অপেক্ষা রাখে না, it
এটি অন্তর্নিহিত পুনরাবৃত্ত ভার এবং এটি অন্তর্নিহিত সঞ্চালক ভার acc
var
এক পর্যায়ে, আমি ইমাসকে একটি সংক্ষিপ্ত ল্যাম্বডা প্যাচ যুক্ত করার চেষ্টা করেছি যা এই স্বরলিপিটি সক্ষম করবে, যা আমি মনে করি এনাফোরিক ম্যাক্রোগুলির চেয়ে সহজ:
(map #(* % %) '(1 2 3 4))
(cl-reduce #(max %1 %2) '(1 2 3 4))
যাইহোক, এটি ধরণের কোথাও যায় নি।