From: Scotty on 7 Aug 2010 01:31 To find all 6 letter words where the 1st & last characters are not equal, the following works & returns a list of 9921 words l1 = Select[DictionaryLookup[], StringLength[#] == 6 & ]; Length[l1] l2 = Select[l1, StringTake[#, 1] != StringTake[#, -1] & ]; Length[l2] 10549 9921 What does it take to get this single boolean expression working w select??? i.e. How can it be done in 1 step?? Select[DictionaryLookup[], {StringLength[#] == 6} && {StringTake[#, 1] != StringTake[#, -1]} & ] TIA Scotty
From: Bill Rowe on 8 Aug 2010 07:23 On 8/7/10 at 1:30 AM, Scotty(a)yahoo.com (Scotty) wrote: >To find all 6 letter words where the 1st & last characters are not >equal, the following works & returns a list of 9921 words >l1 = Select[DictionaryLookup[], StringLength[#] == 6 & ]; Length[l1] >l2 = Select[l1, StringTake[#, 1] != StringTake[#, -1] & ]; >Length[l2] >10549 >9921 >What does it take to get this single boolean expression working w >select??? i.e. How can it be done in 1 step?? >Select[DictionaryLookup[], >{StringLength[#] == 6} && {StringTake[#, 1] != StringTake[#, -1]} & = ] Don't use curly braces to group things. Those are used to define lists. To group things use parenthesises. That is: In[2]:= Length@ Select[DictionaryLookup[], (StringLength[#] == 6) && (StringTake[#, 1] != StringTake[#, -1]) &] Out[2]= 9921
|
Pages: 1 Prev: Strange slow performance on macbook pro Next: Default and head in function argument |