Jump to content

Recommended Posts

Posted

O.K, If I have a list, is there a function that will allow me to extract the highest value and/or lowest value?

 

I don't care about duplicates.

 

In thinking about this, I could probably accomplish this task by using nth values and performing comparisons but that seems tedious. I was hoping I could do it in a single shot with a function.

 

Sample:

 

(setq MyList ((2.00000 26.0000 26.0000 25.6250 25.6250 3.00000 3.00000 2.00000))

 

This is what I'm after:

 

(setq LowVal (MyList))

 

(setq HighVal(MyList))

 

Thanks again for any help

 

---AJS

Posted

ajs,

 

From your questions, you really need to get a reference with all the lisp functions to scan through, even search.

 

See 'max & 'min functions....

Posted

Thanks for the reply. I think you're right about the search function. I do have a function list but sometimes after reading it over and over, I find that I will (through carelessness) skip over something.

 

An example would be my earlier question on length, for some reason, I thought that the length function applied to strings and thus I didn't examine it properly.

 

I'm going to go online and see if I can find a searchable lisp function list.

 

I do appreciate the help of course. Thank you

 

---AJS

Posted

You're welcome.

 

A summary of fiuctions, alphabetical & by category is at http://ronleigh.info/autolisp/acatalog.htm

 

The reference "alispref.pdf" is quite handy, I'd upload it except it's much larger than allowed at this site, maybe you can find it elsewhere...

Posted
Command: (apply 'min '(4 6 1 8 0.5 12))
0.5

Command: (apply 'max '(4 6 1 8 0.5 12))
12.0

  • Thanks 1
Posted

The function MAX doesn´t seem to work with a already defined list of reals, eg:

 

Command: !(Setq A '(1.0 1.2 2.1 3.4))

(1.0 1.2 2.1 3.4))

 

Command: !(Max A)

; error: bad argument type: numberp: (1.0 1.2 2.1 3.4)

 

Command: !(Apply 'Max A)

; error: bad argument type: numberp: (1.0 1.2 2.1 3.4)

 

Any sugestion??

Posted

Worked for me

 

Command: (Setq A '(1.0 1.2 2.1 3.4))

(1.0 1.2 2.1 3.4)

 

Command: (apply 'max a)

3.4

Posted

Hey ajs

 

There is no need to use the ! if you are defining a function on the command line

 

Command: !(Setq A '(1.0 1.2 2.1 3.4))

 

Just use as lpseifert has shown

 

Command: (Setq A '(1.0 1.2 2.1 3.4))

(1.0 1.2 2.1 3.4)

 

Command: (apply 'max a)

3.4

Posted

I don't mean to hijack this thread, but (somewhat related) how would I obtain values that are repeated in a list?

 

e.g. (setq list1 (a b b c)) - how do you extract the value of b?

Posted

Thanks, for help.

 

The function work fine. I had a problem, because my list has a 'nil' element.

Posted
I don't mean to hijack this thread, but (somewhat related) how would I obtain values that are repeated in a list?

 

e.g. (setq list1 (a b b c)) - how do you extract the value of b?

 

I'm not sure if there is a straight-forward function to detect this... I would be inclined to make a comparison between every item in the list and make a list of items already "viewed".

Posted

Perhaps something like this:

 

(defun getrep (alist)
 (foreach x alist
   (if (member x nlist)
     (setq dlist (cons x dlist))
     (setq nlist (cons x nlist))))
 dlist)

(defun c:test ()
 (alert (vl-princ-to-string (getrep '(a b c c d e f f g))))
 (princ))

Posted

If you sort the list then items the same will be next to each other so you can do things like count them up or delete duplicates.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...