A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
5
Task/Search-a-list/Factor/search-a-list.factor
Normal file
5
Task/Search-a-list/Factor/search-a-list.factor
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
: find-index ( seq elt -- i )
|
||||
'[ _ = ] find drop [ "Not found" throw ] unless* ; inline
|
||||
|
||||
: find-last-index ( seq elt -- i )
|
||||
'[ _ = ] find-last drop [ "Not found" throw ] unless* ; inline
|
||||
27
Task/Search-a-list/GAP/search-a-list.gap
Normal file
27
Task/Search-a-list/GAP/search-a-list.gap
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# First position is built-in
|
||||
haystack := Eratosthenes(10000);;
|
||||
needle := 8999;;
|
||||
Position(haystack, needle);
|
||||
# 1117
|
||||
|
||||
LastPosition := function(L, x)
|
||||
local old, new;
|
||||
old := 0;
|
||||
new := 0;
|
||||
while new <> fail do
|
||||
new := Position(L, x, old);
|
||||
if new <> fail then
|
||||
old := new;
|
||||
fi;
|
||||
od;
|
||||
return old;
|
||||
end;
|
||||
|
||||
a := Shuffle(List([1 .. 100], x -> x mod 10));
|
||||
# [ 0, 2, 4, 5, 3, 1, 0, 4, 8, 8, 2, 7, 6, 3, 3, 6, 4, 4, 3, 0, 7, 1, 8, 7, 2, 4, 7, 9, 4, 9, 4, 5, 9, 9, 6, 7, 8, 2, 3,
|
||||
# 5, 1, 5, 4, 2, 0, 9, 6, 1, 1, 2, 2, 0, 5, 7, 6, 8, 8, 3, 1, 9, 5, 1, 9, 6, 8, 9, 2, 0, 6, 2, 1, 6, 1, 1, 2, 5, 3, 3,
|
||||
# 0, 3, 5, 7, 5, 4, 6, 8, 0, 9, 8, 3, 7, 8, 0, 4, 9, 7, 0, 6, 5, 7 ]
|
||||
Position(a, 0);
|
||||
# 1
|
||||
LastPosition(a, 0);
|
||||
# 97
|
||||
13
Task/Search-a-list/Groovy/search-a-list.groovy
Normal file
13
Task/Search-a-list/Groovy/search-a-list.groovy
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
def haystack = ["Zig","Zag","Wally","Ronald","Bush","Krusty","Charlie","Bush","Bozo"]
|
||||
def needles = ["Washington","Bush","Wally"]
|
||||
needles.each { needle ->
|
||||
def index = haystack.indexOf(needle)
|
||||
def lastindex = haystack.lastIndexOf(needle)
|
||||
if (index < 0) {
|
||||
assert lastindex < 0
|
||||
println needle + " is not in haystack"
|
||||
} else {
|
||||
println "First index: " + index + " " + needle
|
||||
println "Last index: " + lastindex + " " + needle
|
||||
}
|
||||
}
|
||||
18
Task/Search-a-list/HicEst/search-a-list.hicest
Normal file
18
Task/Search-a-list/HicEst/search-a-list.hicest
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
CHARACTER haystack='Zig Zag Wally Ronald Bush Krusty Charlie Bush Bozo.'
|
||||
CHARACTER needle*10
|
||||
|
||||
DLG(TItle="Enter search string", Edit=needle)
|
||||
|
||||
n = EDIT(Text=haystack, Option=2, End, Count=needle) ! Option = word
|
||||
|
||||
IF( n == 0 ) THEN
|
||||
WRITE(Messagebox="!") needle, "not found" ! bus not found
|
||||
ELSE
|
||||
first = EDIT(Text=needle, LeXicon=haystack)
|
||||
WRITE(ClipBoard) "First ", needle, "found in position ", first
|
||||
! First bush found in position 5
|
||||
|
||||
last = EDIT(Text=haystack, End, Left=needle, Count=" ") + 1
|
||||
WRITE(ClipBoard) "Last ", needle, "found in position ", last
|
||||
! Last bush found in position 8
|
||||
ENDIF
|
||||
25
Task/Search-a-list/Icon/search-a-list-1.icon
Normal file
25
Task/Search-a-list/Icon/search-a-list-1.icon
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
link lists
|
||||
|
||||
procedure main()
|
||||
haystack := ["Zig","Zag","Wally","Ronald","Bush","Krusty","Charlie","Bush","Bozo"] # the haystack
|
||||
every needle := !["Bush","Washington"] do { # the needles
|
||||
|
||||
if i := lindex(haystack,needle) then { # first occurrence
|
||||
write("needle=",needle, " is at position ",i," in haystack.")
|
||||
|
||||
if i <:= last(lindex,[haystack,needle]) then # last occurrence
|
||||
write("needle=",needle, " is at last position ",i," in haystack.")
|
||||
}
|
||||
else {
|
||||
write("needle=",needle, " is not in haystack.")
|
||||
runerr(500,needle) # throw an error
|
||||
}
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
procedure last(p,arglist) #: return the last generation of p(arglist) or fail
|
||||
local i
|
||||
every i := p!arglist
|
||||
return \i
|
||||
end
|
||||
7
Task/Search-a-list/Icon/search-a-list-2.icon
Normal file
7
Task/Search-a-list/Icon/search-a-list-2.icon
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
procedure lindex(lst, x) #: generate indices for items matching x
|
||||
local i
|
||||
|
||||
every i := 1 to *lst do
|
||||
if lst[i] === x then suspend i
|
||||
|
||||
end
|
||||
7
Task/Search-a-list/J/search-a-list-1.j
Normal file
7
Task/Search-a-list/J/search-a-list-1.j
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Haystack =: ;:'Zig Zag Wally Ronald Bush Krusty Charlie Bush Bozo'
|
||||
Needles =: ;:'Washington Bush'
|
||||
|
||||
Haystack i. Needles NB. first positions
|
||||
9 4
|
||||
Haystack i: Needles NB. last positions
|
||||
9 7
|
||||
3
Task/Search-a-list/J/search-a-list-2.j
Normal file
3
Task/Search-a-list/J/search-a-list-2.j
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Haystack ;:^:_1@(] ,. [ ((<'is not in haystack')"_)`(#@[ I.@:= ])`(8!:0@])} i.) Needles
|
||||
Washington is not in haystack
|
||||
Bush 4
|
||||
8
Task/Search-a-list/J/search-a-list-3.j
Normal file
8
Task/Search-a-list/J/search-a-list-3.j
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
msg=: (<'is not in haystack')"_ NB. not found message
|
||||
idxmissing=: #@[ I.@:= ] NB. indices of items not found
|
||||
fmtdata=: 8!:0@] NB. format atoms as boxed strings
|
||||
findLastIndex=: ;:inv@(] ,. [ msg`idxmissing`fmtdata} i:)
|
||||
|
||||
Haystack findLastIndex Needles NB. usage
|
||||
Washington is not in haystack
|
||||
Bush 7
|
||||
3
Task/Search-a-list/K/search-a-list-1.k
Normal file
3
Task/Search-a-list/K/search-a-list-1.k
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Haystack:("Zig";"Zag";"Wally";"Ronald";"Bush";"Krusty";"Charlie";"Bush";"Bozo")
|
||||
Needles:("Washington";"Bush")
|
||||
{:[y _in x;(y;x _bin y);(y;"Not Found")]}[Haystack]'Needles
|
||||
4
Task/Search-a-list/K/search-a-list-2.k
Normal file
4
Task/Search-a-list/K/search-a-list-2.k
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(("Washington"
|
||||
"Not Found")
|
||||
("Bush"
|
||||
4))
|
||||
3
Task/Search-a-list/K/search-a-list-3.k
Normal file
3
Task/Search-a-list/K/search-a-list-3.k
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Haystack2: Haystack,,"Bush"
|
||||
Needles2:Needles,,"Zag"
|
||||
{+(x;{:[#&x;,/?(*&x;*|&x);"Not found"]}'+x _sm/:y)}[Needles2;Haystack2]
|
||||
6
Task/Search-a-list/K/search-a-list-4.k
Normal file
6
Task/Search-a-list/K/search-a-list-4.k
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
(("Washington"
|
||||
"Not found")
|
||||
("Bush"
|
||||
4 9)
|
||||
("Zag"
|
||||
1))
|
||||
9
Task/Search-a-list/Lang5/search-a-list.lang5
Normal file
9
Task/Search-a-list/Lang5/search-a-list.lang5
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
: haystack(*) ['rosetta 'code 'search 'a 'list 'lang5 'code] find-index ;
|
||||
: find-index
|
||||
2dup eq length iota swap select swap drop
|
||||
length if swap drop
|
||||
else drop " is not in haystack" 2 compress "" join
|
||||
then ;
|
||||
: ==>search apply ;
|
||||
|
||||
['hello 'code] 'haystack ==>search .
|
||||
37
Task/Search-a-list/Liberty-BASIC/search-a-list.liberty
Normal file
37
Task/Search-a-list/Liberty-BASIC/search-a-list.liberty
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
haystack$="apple orange pear cherry melon peach banana needle blueberry mango strawberry needle "
|
||||
haystack$=haystack$+"pineapple grape kiwi blackberry plum raspberry needle cranberry apricot"
|
||||
|
||||
idx=1
|
||||
do until word$(haystack$,idx)=""
|
||||
idx=idx+1
|
||||
loop
|
||||
total=idx-1
|
||||
|
||||
needle$="needle"
|
||||
'index of first occurrence
|
||||
for i = 1 to total
|
||||
if word$(haystack$,i)=needle$ then exit for
|
||||
next
|
||||
print needle$;" first found at index ";i
|
||||
|
||||
'index of last occurrence
|
||||
for j = total to 1
|
||||
if word$(haystack$,j)=needle$ then exit for
|
||||
next
|
||||
print needle$;" last found at index ";j
|
||||
if i<>j then
|
||||
print "Multiple instances of ";needle$
|
||||
else
|
||||
print "Only one instance of ";needle$;" in list."
|
||||
end if
|
||||
|
||||
'raise exception
|
||||
needle$="cauliflower"
|
||||
for k=1 to total
|
||||
if word$(haystack$,k)=needle$ then exit for
|
||||
next
|
||||
if k>total then
|
||||
print needle$;" not found in list."
|
||||
else
|
||||
print needle$;" found at index ";k
|
||||
end if
|
||||
13
Task/Search-a-list/Lisaac/search-a-list.lisaac
Normal file
13
Task/Search-a-list/Lisaac/search-a-list.lisaac
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
+ haystack : ARRAY[STRING];
|
||||
haystack := "Zig Zag Wally Ronald Bush Krusty Charlie Bush Bozo".split;
|
||||
"Washington Bush".split.foreach { needle : STRING;
|
||||
haystack.has(needle).if {
|
||||
haystack.first_index_of(needle).print;
|
||||
' '.print;
|
||||
needle.print;
|
||||
'\n'.print;
|
||||
} else {
|
||||
needle.print;
|
||||
" is not in haystack\n".print;
|
||||
};
|
||||
};
|
||||
13
Task/Search-a-list/Logo/search-a-list.logo
Normal file
13
Task/Search-a-list/Logo/search-a-list.logo
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
to indexof :item :list
|
||||
if empty? :list [(throw "NOTFOUND 0)]
|
||||
if equal? :item first :list [output 1]
|
||||
output 1 + indexof :item butfirst :list
|
||||
end
|
||||
|
||||
to showindex :item :list
|
||||
make "i catch "NOTFOUND [indexof :item :list]
|
||||
ifelse :i = 0 [(print :item [ not found in ] :list)] [(print :item [ found at position ] :i [ in ] :list)]
|
||||
end
|
||||
|
||||
showindex "dog [My dog has fleas] ; dog found at position 2 in My dog has fleas
|
||||
showindex "cat [My dog has fleas] ; cat not found in My dog has fleas
|
||||
15
Task/Search-a-list/MAXScript/search-a-list-1.max
Normal file
15
Task/Search-a-list/MAXScript/search-a-list-1.max
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
haystack=#("Zig","Zag","Wally","Ronald","Bush","Krusty","Charlie","Bush","Bozo")
|
||||
|
||||
for needle in #("Washington","Bush") do
|
||||
(
|
||||
index = findItem haystack needle
|
||||
|
||||
if index == 0 then
|
||||
(
|
||||
format "% is not in haystack\n" needle
|
||||
)
|
||||
else
|
||||
(
|
||||
format "% %\n" index needle
|
||||
)
|
||||
)
|
||||
2
Task/Search-a-list/MAXScript/search-a-list-2.max
Normal file
2
Task/Search-a-list/MAXScript/search-a-list-2.max
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Washington is not in haystack
|
||||
5 Bush
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
haystack = {"Zig","Zag","Wally","Ronald","Bush","Zig","Zag","Krusty","Charlie","Bush","Bozo"};
|
||||
needle = "Zag";
|
||||
first = Position[haystack,needle,1][[1,1]]
|
||||
last = Position[haystack,needle,1][[-1,1]]
|
||||
all = Position[haystack,needle,1][[All,1]]
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
2
|
||||
7
|
||||
{2,7}
|
||||
Loading…
Add table
Add a link
Reference in a new issue