ajs 发表于 2022-7-6 15:08:27

Lisp: Extract highest/lowest v

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

CarlB 发表于 2022-7-6 15:15:32

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....

ajs 发表于 2022-7-6 15:21:41

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

CarlB 发表于 2022-7-6 15:24:47

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...

ASMI 发表于 2022-7-6 15:28:11

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

Andreneves 发表于 2022-7-6 15:31:46

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??

lpseifert 发表于 2022-7-6 15:37:08

Worked for me
 

jammie 发表于 2022-7-6 15:43:43

Hey ajs
 
There is no need to use the ! if you are defining a function on the command line
 
 
Just use as lpseifert has shown
 

uddfl 发表于 2022-7-6 15:47:46

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?

Andreneves 发表于 2022-7-6 15:52:46

Thanks, for help.
 
The function work fine. I had a problem, because my list has a 'nil' element.
页: [1] 2
查看完整版本: Lisp: Extract highest/lowest v