Logo

Programming-Idioms

History of Idiom 20 > diff from v51 to v52

Edit summary for version 52 by foobar:
New Lisp implementation by user [foobar]

Version 51

2019-09-26, 15:33:13

Version 52

2019-09-26, 15:45:57

Idiom #20 Return two values

Implement a function search which looks for item x in a 2D matrix m.
Return indices i, j of the matching cell.
Think of the most idiomatic way in the language to return the two values at the same time.

Idiom #20 Return two values

Implement a function search which looks for item x in a 2D matrix m.
Return indices i, j of the matching cell.
Think of the most idiomatic way in the language to return the two values at the same time.

Code
(defun mysearch (x m)
  (loop for i below (array-dimension m 0)
        do (loop for j below (array-dimension m 1)
                 when (eql x (aref m i j))
                 do (return-from my-search
                                 (values i j)))))