+2009-08-24 Kenichi Handa <handa@m17n.org>
+
+ * language/ind-util.el (mapthread): Delete it.
+ (combinatorial): New function.
+ (indian--puthash-cv): Use combinatorial instead of mapthread.
+
2009-08-22 Kevin Ryde <user42@zip.com.au>
* emacs-lisp/checkdoc.el (checkdoc-force-history-flag)
(;; misc
nil ".m" ".h" "'" nil "." nil)))
-(defun mapthread (function seq1 &rest seqrest)
- "Apply FUNCTION to each element of SEQ1 and return result list.
-If there are several SEQRESTs, FUNCTION is called with that many
-arguments, with all possible combinations of these multiple SEQUENCES.
-Thus, if SEQ1 contains 3 elements and SEQ2 contains 5 elements, then
-FUNCTION will be called 15 times."
- (if seqrest
- (mapcar
- (lambda (x)
- (apply
- 'mapthread
- `(lambda (&rest y) (apply ',function x y))
- seqrest))
- seq1)
- (mapcar function seq1)))
+(defun combinatorial (head &rest tail)
+ (if tail
+ (apply 'append
+ (mapcar (lambda (y) (mapcar (lambda (x) (cons x y)) head))
+ (apply 'combinatorial tail)))
+ (mapcar 'list head)))
(defun indian--puthash-char (char trans-char hashtbls)
(let ((encode-hash (car hashtbls)) ;; char -> trans
(if (stringp trans-v) (setq trans-v (list trans-v)))
(indian--puthash-char
(concat c v)
- (apply 'append
- (mapthread 'concat trans-c trans-v))
+ (mapcar (lambda (x) (apply 'concat x))
+ (combinatorial trans-c trans-v))
hashtbls)))
v trans-v))
c trans-c))