September Morn Update

This commit is contained in:
Ingy döt Net 2019-09-12 10:33:56 -07:00
parent 4e2d22a71d
commit aac6731f2c
6856 changed files with 141342 additions and 21127 deletions

View file

@ -0,0 +1,17 @@
100 PROGRAM "Search.bas"
110 STRING A$(1 TO 55)*8
120 FOR I=1 TO 55
130 READ A$(I)
140 PRINT A$(I);" ";
150 NEXT
160 DO
170 PRINT :INPUT PROMPT "Word to seatch for? (Leave blank to exit) ":S$
180 LET S$=LCASE$(LTRIM$(RTRIM$(S$))):LET FOUND=0
190 IF S$="" THEN EXIT DO
200 FOR I=LBOUND(A$) TO UBOUND(A$)
210 IF A$(I)=S$ THEN LET FOUND=-1:PRINT "Found """;S$;""" at index";I
220 NEXT
230 IF NOT FOUND THEN PRINT """";S$;""" not found."
240 LOOP
250 DATA foo,bar,baz,quux,quuux,quuuux,bazola,ztesch,foo,bar,thud,grunt,foo,bar,bletch,foo,bar,fum,fred,jim,sheila,barney,flarp,zxc
260 DATA spqr,wombat,shme,foo,bar,baz,bongo,spam,eggs,snork,foo,bar,zot,blarg,wibble,toto,titi,tata,tutu,pippo,pluto,paperino,aap,noot,mies,oogle,foogle,boogle,zork,gork,bork

View file

@ -1,16 +1,21 @@
import system'routines.
import extensions.
import system'routines;
import extensions;
program =
[
var haystack := ("Zig", "Zag", "Wally", "Ronald", "Bush", "Krusty", "Charlie", "Bush", "Bozo").
public program()
{
var haystack := new string[]{"Zig", "Zag", "Wally", "Ronald", "Bush", "Krusty", "Charlie", "Bush", "Bozo"};
("Washington", "Bush") forEach(:needle)
[
var index := haystack indexOfElement:needle.
new string[]{"Washington", "Bush"}.forEach:(needle)
{
var index := haystack.indexOfElement:needle;
if (index == -1)
[ console printLine(needle," is not in haystack") ];
[ console printLine(index," ",needle) ].
].
].
{
console.printLine(needle," is not in haystack")
}
else
{
console.printLine(needle, " - ", index)
}
}
}

View file

@ -1,5 +1,2 @@
import Control.Monad
import Control.Arrow
*Main> map (ap (,) (flip elemIndex haystack)) needles
*Main> ((,) <*> flip elemIndex haystack) <$> needles
[("Washington",Nothing),("Bush",Just 4)]

View file

@ -1,21 +1,37 @@
/*REXX program searches a collection of strings (an array of periodic table elements).*/
/*───────────────names of the first 200 elements of the periodic table.─────────────*/
_= 'hydrogen helium lithium beryllium boron carbon nitrogen oxygen fluorine neon sodium'
_=_ 'magnesium aluminum silicon phosphorous sulfur chlorine argon potassium calcium'
_=_ 'scandium titanium vanadium chromium manganese iron cobalt nickel copper zinc'
_=_ 'gallium germanium arsenic selenium bromine krypton rubidium strontium yttrium'
_=_ 'zirconium niobium molybdenum technetium ruthenium rhodium palladium silver cadmium'
_=_ 'indium tin antimony tellurium iodine xenon cesium barium lanthanum cerium'
_=_ 'praseodymium neodymium promethium samarium europium gadolinium terbium dysprosium'
_=_ 'holmium erbium thulium ytterbium lutetium hafnium tantalum tungsten rhenium osmium'
_=_ 'iridium platinum gold mercury thallium lead bismuth polonium astatine radon'
_=_ 'francium radium actinium thorium protactinium uranium neptunium plutonium americium'
_=_ 'curium berkelium californium einsteinium fermium mendelevium nobelium lawrencium'
_=_ 'rutherfordium dubnium seaborgium bohrium hassium meitnerium darmstadtium'
_=_ 'roentgenium copernicium nihonium flerovium moscovium livermorium tennessine'
_=_ 'oganesson ununennium unbinilium unbiunium unbibium unbitrium unbiquadium'
_=_ 'unbipentium unbihexium unbiseptium unbioctium unbiennium untrinilium untriunium'
_=_ 'untribium untritrium untriquadium untripentium untrihexium untriseptium untrioctium'
_=_ 'untriennium unquadnilium unquadunium unquadbium unquadtrium unquadquadium'
_=_ 'unquadpentium unquadhexium unquadseptium unquadoctium unquadennium unpentnilium'
_=_ 'unpentunium unpentbium unpenttrium unpentquadium unpentpentium unpenthexium'
_=_ 'unpentseptium unpentoctium unpentennium unhexnilium unhexunium unhexbium unhextrium'
_=_ 'unhexquadium unhexpentium unhexhexium unhexseptium unhexoctium unhexennium'
_=_ 'unseptnilium unseptunium unseptbium unsepttrium unseptquadium unseptpentium'
_=_ 'unsepthexium unseptseptium unseptoctium unseptennium unoctnilium unoctunium'
_=_ 'unoctbium unocttrium unoctquadium unoctpentium unocthexium unoctseptium unoctoctium'
_=_ 'unoctennium unennilium unennunium unennbium unenntrium unennquadium unennpentium'
_=_ 'unennhexium unennseptium unennoctium unennennium binilnilium'
haystack=, /*names of the first 200 elements of the periodic table*/
'hydrogen helium lithium beryllium boron carbon nitrogen oxygen fluorine neon sodium magnesium aluminum silicon phosphorous sulfur chlorine argon potassium calcium scandium titanium',
'vanadium chromium manganese iron cobalt nickel copper zinc gallium germanium arsenic selenium bromine krypton rubidium strontium yttrium zirconium niobium molybdenum technetium ruthenium',
'rhodium palladium silver cadmium indium tin antimony tellurium iodine xenon cesium barium lanthanum cerium praseodymium neodymium promethium samarium europium gadolinium terbium dysprosium',
'holmium erbium thulium ytterbium lutetium hafnium tantalum tungsten rhenium osmium iridium platinum gold mercury thallium lead bismuth polonium astatine radon francium radium actinium',
'thorium protactinium uranium neptunium plutonium americium curium berkelium californium einsteinium fermium mendelevium nobelium lawrencium rutherfordium dubnium seaborgium bohrium hassium',
'meitnerium darmstadtium roentgenium copernicium Ununtrium flerovium Ununpentium livermorium Ununseptium Ununoctium Ununennium Unbinilium Unbiunium Unbibium Unbitrium Unbiquadium',
'Unbipentium Unbihexium Unbiseptium Unbioctium Unbiennium Untrinilium Untriunium Untribium Untritrium Untriquadium Untripentium Untrihexium Untriseptium Untrioctium Untriennium Unquadnilium',
'Unquadunium Unquadbium Unquadtrium Unquadquadium Unquadpentium Unquadhexium Unquadseptium Unquadoctium Unquadennium Unpentnilium Unpentunium Unpentbium Unpenttrium Unpentquadium',
'Unpentpentium Unpenthexium Unpentseptium Unpentoctium Unpentennium Unhexnilium Unhexunium Unhexbium Unhextrium Unhexquadium Unhexpentium Unhexhexium Unhexseptium Unhexoctium Unhexennium',
'Unseptnilium Unseptunium Unseptbium Unsepttrium Unseptquadium Unseptpentium Unsepthexium Unseptseptium Unseptoctium Unseptennium Unoctnilium Unoctunium Niobium Unocttrium Unoctquadium',
'Unoctpentium Unocthexium Unoctseptium Unoctoctium Unoctennium Unennilium Unennunium Unennbium Unenntrium Unennquadium Unennpentium Unennhexium Unennseptium Unennoctium Unennennium Binilnilium'
needle = 'gold' /*we'll be looking for the gold. */
upper needle haystack /*in case some people capitalize stuff. */
idx=wordpos(needle,haystack) /*use REXX's BIF: WORDPOS */
if idx\==0 then return idx /*return the haystack index number. */
haystack= _ /*assign the elements ───► haystack. */
needle = 'gold' /*we'll be looking for the gold. */
upper needle haystack /*in case some people capitalize stuff.*/
idx= wordpos(needle, haystack) /*use REXX's BIF: WORDPOS */
if idx\==0 then return idx /*return the haystack index number. */
else say needle "wasn't found in the haystack!"
return 0 /*indicates the needle wasn't found. */
return 0 /*indicates the needle wasn't found. */
/*stick a fork in it, we're all done. */

View file

@ -0,0 +1,32 @@
Function IsInArray(stringToBeFound As Variant, arr As Variant, _
Optional start As Integer = 1, Optional reverse As Boolean = False) As Long
'Adapted from https://stackoverflow.com/questions/12414168/use-of-custom-data-types-in-vba
Dim i As Long, lo As Long, hi As Long, stp As Long
' default return value if value not found in array
IsInArray = -1
If reverse Then
lo = UBound(arr): hi = start: stp = -1
Else
lo = start: hi = UBound(arr): stp = 1
End If
For i = lo To hi Step stp 'start in stead of LBound(arr)
If StrComp(stringToBeFound, arr(i), vbTextCompare) = 0 Then
IsInArray = i
Exit For
End If
Next i
End Function
Public Sub search_a_list()
Dim haystack() As Variant, needles() As Variant
haystack = [{"Zig","Zag","Wally","Ronald","Bush","Krusty","Charlie","Bush","Bozo"}]
needles = [{"Washington","Bush"}]
For i = 1 To 2
If IsInArray(needles(i), haystack) = -1 Then
Debug.Print needles(i); " not found in haystack."
Else
Debug.Print needles(i); " is at position "; CStr(IsInArray(needles(i), haystack)); ".";
Debug.Print " And last position is ";
Debug.Print CStr(IsInArray(needles(i), haystack, 1, True)); "."
End If
Next i
End Sub