(mapthread): Delete it.

(combinatorial): New function.
(indian--puthash-cv): Use combinatorial instead of mapthread.
This commit is contained in:
Kenichi Handa 2009-08-24 11:43:59 +00:00
parent deb05c9214
commit dbd9624e5a
2 changed files with 14 additions and 17 deletions

View file

@ -1,3 +1,9 @@
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)

View file

@ -382,21 +382,12 @@
(;; 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
@ -446,8 +437,8 @@ FUNCTION will be called 15 times."
(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))