<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Programming Challenge in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10738243#M53033</link>
    <description>@Anonymous&lt;BR /&gt;I had not known of the word "pangram."&lt;BR /&gt;&amp;gt;From Google:&lt;BR /&gt;"A pangram or holoalphabetic sentence is *a sentence using every letter of&lt;BR /&gt;a given alphabet at least once*."&lt;BR /&gt;&lt;BR /&gt;In fact I had never heard of the word "holoalphabetic" before.&lt;BR /&gt;I'll have to try to translate your French pangrams into English.&lt;BR /&gt;Ahah!  "A hot blonde whiskey drinking judge."  Just my type. &lt;span class="lia-unicode-emoji" title=":smirking_face:"&gt;😏&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;You and Wikipedia claim there are 26 letters (based on the Latin alphabet),&lt;BR /&gt;but how do you handle the accent aigu and accent grave?</description>
    <pubDate>Fri, 05 Nov 2021 14:57:02 GMT</pubDate>
    <dc:creator>john.uhden</dc:creator>
    <dc:date>2021-11-05T14:57:02Z</dc:date>
    <item>
      <title>Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735297#M53001</link>
      <description>&lt;P&gt;It is claimed that the sentence "The quick brown fox jumped over the lazy dog." contains at least one of all the letters in the English alphabet.&amp;nbsp; Case doesn't matter.&lt;/P&gt;
&lt;P&gt;Your challenge is to post a function that proves or disproves that claim.&amp;nbsp; It should take the sentence as a string and return T or nil, e.g.&lt;/P&gt;
&lt;P&gt;(defun true? (str)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; (and&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; (= (type str) 'STR)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; (vl-yes-they-are-all-there str)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; )&lt;/P&gt;
&lt;P&gt;)&lt;/P&gt;
&lt;P&gt;Have fun, OR ELSE!&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 12:21:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735297#M53001</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T12:21:20Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735372#M53002</link>
      <description>&lt;P&gt;T/nil. Not listing missing ones. ignores the case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;(defun vl-yes-they-are-all-there ( str / l)
  (foreach e (vl-string-&amp;gt;list (strcase str))
    (and (not (vl-position e l))
	 (&amp;lt; 64 e 91)
	 (setq l (cons e l))))
  (= 2015 (apply '+ l)))
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;gt;&amp;gt; (true? "The quick brown fox jumped over the lazy dog.")
&amp;gt;&amp;gt; &lt;STRONG&gt;nil
&lt;/STRONG&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;gt;&amp;gt; (true? "The quick brown fox jumps over the lazy dog.")
&amp;gt;&amp;gt; &lt;STRONG&gt;T
&lt;/STRONG&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 13:07:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735372#M53002</guid>
      <dc:creator>ВeekeeCZ</dc:creator>
      <dc:date>2021-11-04T13:07:10Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735415#M53003</link>
      <description>&lt;P&gt;jump&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;s&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 12:57:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735415#M53003</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2021-11-04T12:57:55Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735450#M53004</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun AllLetters (str / chr missing)
  (setq chr 64)
  (while (and (not missing) (&amp;lt; chr 90))
    (setq missing (not (vl-string-position (setq chr (1+ chr)) (strcase str))))
  ); while
  (not missing)
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Command: (allletters "The quick brown fox jumps over the lazy dog.")&lt;BR /&gt;T&lt;/P&gt;
&lt;P&gt;Command: (allletters "The quick brown fox jumped over the lazy dog.")&lt;BR /&gt;nil&lt;/P&gt;
&lt;P&gt;Command: (allletters "Pack my box with five dozen liquor jugs.")&lt;BR /&gt;T&lt;/P&gt;
&lt;P&gt;Command: (allletters "test")&lt;BR /&gt;nil&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In a way, it has the same kind of benefit of&lt;STRONG&gt;&lt;FONT face="courier new,courier" color="#000000"&gt; (cond) &lt;/FONT&gt;&lt;/STRONG&gt;compared to a series of&lt;STRONG&gt;&lt;FONT face="courier new,courier" color="#000000"&gt; (if) &lt;/FONT&gt;&lt;/STRONG&gt;functions -- it checks for the presence of letters &lt;EM&gt;only until it finds one missing&lt;/EM&gt;, and then doesn't need to go any further.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 14:01:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735450#M53004</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2021-11-04T14:01:26Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735578#M53005</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1779365"&gt;@ВeekeeCZ&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/69526"&gt;@Kent1Cooper&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I expected that you two would rise to the occasion, BUT&lt;/P&gt;
&lt;P&gt;neither of you tested to see if str was a 'STR!&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":angry_face:"&gt;😠&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Kent gets credit for remembering the the correct sentence ("jumps" not "jumped") and proving both.&lt;/P&gt;
&lt;P&gt;He also gets extra credit for remembering the other famous sentence.&lt;/P&gt;
&lt;P&gt;BUT he used an AutoLisp function name as a symbol (chr), but that's because he knew it was okay as long as it was local.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry, BeekeeCZ, but Kent leads so far.&lt;/P&gt;
&lt;P&gt;Still hoping to hear from gurus like&amp;nbsp;@Hak_vz, @ronjonp, @pbejse, &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/411413"&gt;@dbroad&lt;/a&gt;&amp;nbsp;et al.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 13:52:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735578#M53005</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T13:52:17Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735650#M53006</link>
      <description>&lt;P&gt;The converse version, checking that each letter is present so far, rather than whether each one is missing:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun AllLetters (str / chr# sofar)
  (setq chr# 64 sofar T)
  (while (and sofar (&amp;lt; chr# 90))
    (setq sofar (vl-string-position (setq chr# (1+ chr#)) (strcase str)))
  ); while
  (numberp sofar)
)&lt;/LI-CODE&gt;
&lt;P&gt;[And I fixed the variable name, but didn't add a check on the (type) of the 'str' argument.]&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The (numberp) "wrapper" can be removed if you don't mind the non-nil return being a number, rather than T.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 14:15:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735650#M53006</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2021-11-04T14:15:14Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735759#M53008</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun has_all_letters (str / a b c d e dec cnt)
	(cond 
		((= (type str) 'STR)
			(setq dec (cdr(vl-sort (vl-string-&amp;gt;list (strcase str)) '&amp;lt;)))
			(cond 
				((= (length dec) 26)(setq a T) (princ "\nThis sentence has 26 letters - TRUE"))
				(T (princ "\nThis sentence doesn't have 26 letters - FALSE"))
			)
			(cond 
				((= (chr (car dec)) "A")(setq b T) (princ "\nFirst alhabetically ordered letter is A - TRUE"))
				((/= (chr (car dec)) "A")(princ "\nFirst alhabetically ordered letter is not A  - FALSE"))
			)
			(cond 
				((= (chr (last dec)) "Z")(setq c T) (princ "\nLast alhabetically ordered letter is Z - TRUE"))
				((/= (chr (last dec)) "Z")(princ "\nLast alhabetically ordered letter is not Z  - FALSE"))
			)
			(setq 
				d T
				cnt -1
			)
			(while (and (and d)(&amp;lt; (setq cnt (1+ cnt))(1- (length dec))))
				(if (/= (- (nth (1+ cnt) dec)(nth cnt dec)) 1) (setq d nil))
			)
			(cond
				((and d)(princ "\nAll letters in this sentence are in sequence - TRUE"))
				(T (princ "\nNot all letters in this sentence are in sequence - FALSE"))
			)
			(setq e (apply 'and (list a b c d)))
			(cond
				 ((not e)(princ "\n\nAll letters from English alphabet are not present - final result:_______ FALSE"))
				 ((and e)(princ "\n\nAll letters from English alphabet are here - final result: _______TRUE"))
			)
		)	
		(T (princ "\nFunction argument is not a string!"))
	)
(princ)
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;Command: (setq str "The quick brown fox jumped over the lazy dog")
Command: (has_all_letters str)
This sentence doesn't have 26 letters - FALSE
First alhabetically ordered letter is A - TRUE
Last alhabetically ordered letter is Z - TRUE
Not all letters in this sentence are in sequence - FALSE
All letters from English alphabet are not present - final result:_______ FALSE&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;Command: (setq str "The quick brown fox jumps over the lazy dog")
Command: (has_all_letters str)
This sentence has 26 letters - TRUE
First alhabetically ordered letter is A - TRUE
Last alhabetically ordered letter is Z - TRUE
All letters in this sentence are in sequence - TRUE
All letters from English alphabet are here - final result: _______TRUE&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 14:48:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735759#M53008</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2021-11-04T14:48:40Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735813#M53009</link>
      <description>&lt;P&gt;If you want it to tell you which letter(s) is/are missing:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun AllLetters (str / chr# sofar)
  (setq chr# 64 missing "")
  (while (&amp;lt; chr# 90)
    (if (not (vl-string-position (setq chr# (1+ chr#)) (strcase str)))
      (setq missing (strcat missing (chr chr#)))
    ); if
  ); while
  (prompt
    (if (= missing "")
      "\nAll letters present." ; then
      (strcat "\nMissing letter(s): " missing "."); else
    ); if
  ); prompt
  (princ)
)&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 04 Nov 2021 15:04:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735813#M53009</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2021-11-04T15:04:50Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735869#M53010</link>
      <description>&lt;P&gt;Since you're calling the test function from another function that already tests whether or not the argument is a string, that hardly seems necessary.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun test (str / lst i)
(setq lst (vl-string-&amp;gt;list (strcase str)))
(setq i 65)
(while (and (&amp;lt; i 91)
	    (vl-position i lst))
  (setq i (1+ i)))
(= i 91)
)&lt;/LI-CODE&gt;
&lt;P&gt;You could also do a precheck.&lt;/P&gt;
&lt;P&gt;(&amp;gt;=(length lst) 26))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 15:30:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735869#M53010</guid>
      <dc:creator>dbroad</dc:creator>
      <dc:date>2021-11-04T15:30:45Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735912#M53011</link>
      <description>&lt;P&gt;That's very close to my first attempt...&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun @Anonymous? (str / n ok)
  (and
    (= (type str) 'STR)
    (setq str (vl-string-&amp;gt;list (strcase str)) n 64 ok T)
    (while (and ok (&amp;lt; n 90))
      (setq ok (vl-position (setq n (1+ n)) str))
    )
    (boundp (quote ok))
  )
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;so I guess your 2nd version is an improvement.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Here is my 2nd attempt:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun istrue (str / chrs)
  (and
    (= (type str) 'STR)
    (setq chrs '(90))
    (repeat (- 90 65)(setq chrs (cons (1- (car chrs)) chrs)))
    (not (vl-position nil (mapcar '(lambda (#)(vl-position # (vl-string-&amp;gt;list (strcase str)))) chrs)))
  )
)
;; I tried using...
;; (vl-every 'vl-position chrs (vl-string-&amp;gt;list (strcase str)))
;; but I've never figured out how to use vl-every
&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 04 Nov 2021 15:41:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735912#M53011</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T15:41:16Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735990#M53012</link>
      <description>&lt;P&gt;Yo, Hak,&lt;/P&gt;
&lt;P&gt;I didn't require that the sentence be 26 characters long, nor start with A and end with Z, nor be all caps, nor that the letters have to be in any order.&lt;/P&gt;
&lt;P&gt;But I admire your perspicacity, much like Abbie on NCIS.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 16:05:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10735990#M53012</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T16:05:57Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736001#M53013</link>
      <description>&lt;P&gt;NICE,&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/411413"&gt;@dbroad&lt;/a&gt;.&lt;/P&gt;
&lt;P&gt;So simple.&lt;/P&gt;
&lt;P&gt;You just jumped into the lead!&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":thumbs_up:"&gt;👍&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 16:10:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736001#M53013</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T16:10:08Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736039#M53014</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3930636"&gt;@john.uhden&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Yo, Hak,&lt;/P&gt;
&lt;P&gt;I didn't require that the sentence be 26 characters long, nor start with A and end with Z, nor be all caps, nor that the letters have to be in any order.&lt;/P&gt;
&lt;P&gt;But I admire your perspicacity, much like Abbie on NCIS.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;a) 26 letters in English alphabet.&amp;nbsp; Sentence should have at least 26 characters&lt;/P&gt;
&lt;P&gt;b) I sort all letters in a list from smallest to largest and have decided to use uppercase&lt;/P&gt;
&lt;P&gt;c) But you asked that all letters are here, so in sorted list first is A last is Z&lt;/P&gt;
&lt;P&gt;To resolve case with more than 26 letters in a sentence unique filtering is needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So my algorithm can be summed up:&lt;/P&gt;
&lt;P&gt;Take all letters in sentence, convert to integers and use unique filter&lt;/P&gt;
&lt;P&gt;Convert to uppercase or lowercase for continuity and re move space&lt;/P&gt;
&lt;P&gt;Test is sorted list is in sequence&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Code was made on the fly so errors are here&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 16:26:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736039#M53014</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2021-11-04T16:26:02Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736094#M53015</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1779365"&gt;@ВeekeeCZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Okay, okay, PROTEST accepted.&lt;/P&gt;
&lt;P&gt;1.&amp;nbsp; You did not use a protected name as a symbol. - TRUE&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:"&gt;😊&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;2.&amp;nbsp; Other than the input argument, you used only one local. - TRUE&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;3.&amp;nbsp; You actually named your function with the silly named I posted. - TRUE&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;4.&amp;nbsp; Your function is as good as either of Kent's. - TRUE&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":relieved_face:"&gt;😌&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;5.&amp;nbsp; Your function is as simple and good as Doug's - FALSE&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":crying_face:"&gt;😢&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 16:53:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736094#M53015</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T16:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736126#M53016</link>
      <description>&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5530556"&gt;@hak_vz&lt;/a&gt;&lt;BR /&gt;It hurts me to say this to someone of your imminent eminent stature, but&lt;BR /&gt;take another look at Doug's.</description>
      <pubDate>Thu, 04 Nov 2021 17:12:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736126#M53016</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T17:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736207#M53017</link>
      <description>&lt;P&gt;Here is a quick one from me:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;(defun test (str)

(= (length (vl-sort (vl-remove-if-not '(lambda (x) (and (&amp;gt; x 64) (&amp;lt; x 91))) (vl-string-&amp;gt;list (strcase str))) '&amp;lt;)) 26)
)&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 04 Nov 2021 17:41:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736207#M53017</guid>
      <dc:creator>doaiena</dc:creator>
      <dc:date>2021-11-04T17:41:32Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736458#M53018</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1166654"&gt;@doaiena&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Very nice!&lt;/P&gt;
&lt;P&gt;Slight improvement:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun test (str)                                    ; ↓↓↓↓↓↓↓↓
  (= (length (vl-sort (vl-remove-if-not '(lambda (x) (&amp;lt; 64 x 91))
  (vl-string-&amp;gt;list (strcase str))) '&amp;lt;)) 26)
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;Pluses:&lt;/P&gt;
&lt;P&gt;1.&amp;nbsp; You knew (or stumbled on the fact) that vl-sort removes duplicates.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;2.&amp;nbsp; Zero locals other than input argument.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;3.&amp;nbsp; Very short and sweet.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face_with_big_eyes:"&gt;😃&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;4.&amp;nbsp; Very few seem to care about checking if str is a 'STR.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":thinking_face:"&gt;🤔&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/411413"&gt;@dbroad&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;You've got some serious competition here &lt;EM&gt;(with my assistance)&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Of course I haven't checked any of them for speed, but like how many times are you going to repeat this?&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 19:21:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736458#M53018</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T19:21:07Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736519#M53019</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/411413"&gt;@dbroad&lt;/a&gt;'s function is hard to beat. vl-position is lightning fast and is going to be called 26 times in he worst case scenario. Definitely the best solution if you ask me.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 19:45:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736519#M53019</guid>
      <dc:creator>doaiena</dc:creator>
      <dc:date>2021-11-04T19:45:13Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736562#M53020</link>
      <description>&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1166654"&gt;@doaiena&lt;/a&gt;,&lt;BR /&gt;Well, I didn't ask.  I guess I should have.&lt;span class="lia-unicode-emoji" title=":zipper_mouth_face:"&gt;🤐&lt;/span&gt;&lt;BR /&gt;I'm waiting for any late entries.</description>
      <pubDate>Thu, 04 Nov 2021 20:02:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736562#M53020</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-11-04T20:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Challenge</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736600#M53021</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1166654"&gt;@doaiena&lt;/a&gt;&amp;nbsp;, Your function is a witty one liner.&amp;nbsp; I like that it doesn't need any local vars.&amp;nbsp; They're both very fast. Benchmarking it depends on the program used and the order of the functions tested. When tested individually with Rob Bell's first bench version, yours appears slower but I doubt that matters much since both are almost the same time. If there were thousands of strings to test, I would imagine that something like this would be faster than either although this would be slower unless you had the perfect string.&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun test (str / lst i)
  (setq lst (vl-string-&amp;gt;list (strcase str)))
  (setq i 65)
  (and (&amp;gt;= (length lst) 26)
       (while (and (&amp;lt; i 91) (vl-position i lst)) (setq i (1+ i)))
       (= i 91)
       )
  )&lt;/LI-CODE&gt;
&lt;P&gt;This would immediately eliminate strings shorter than 26 characters before looping.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In college, I found, when writing in &lt;A href="https://en.wikipedia.org/wiki/APL_(programming_language)" target="_blank" rel="noopener"&gt;APL&lt;/A&gt;, that putting too much in a single line was really fun until I started having to debug my work months later. Each greek character could do an immense amount of calculation and I was stringing hundreds of them side by side to do hundreds of lines of Fortran in a single line.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 20:17:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programming-challenge/m-p/10736600#M53021</guid>
      <dc:creator>dbroad</dc:creator>
      <dc:date>2021-11-04T20:17:49Z</dc:date>
    </item>
  </channel>
</rss>

