A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
21
Task/Multisplit/Icon/multisplit.icon
Normal file
21
Task/Multisplit/Icon/multisplit.icon
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
procedure main()
|
||||
s := "a!===b=!=c"
|
||||
# just list the tokens
|
||||
every writes(multisplit(s,["==", "!=", "="])," ") | write()
|
||||
|
||||
# list tokens and indices
|
||||
every ((p := "") ||:= t := multisplit(s,sep := ["==", "!=", "="])) | break write() do
|
||||
if t == !sep then writes(t," (",*p+1-*t,") ") else writes(t," ")
|
||||
|
||||
end
|
||||
|
||||
procedure multisplit(s,L)
|
||||
s ? while not pos(0) do {
|
||||
t := =!L | 1( arb(), match(!L)|pos(0) )
|
||||
suspend t
|
||||
}
|
||||
end
|
||||
|
||||
procedure arb()
|
||||
suspend .&subject[.&pos:&pos <- &pos to *&subject + 1]
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue