Jump to content

String matching: Difference between revisions

add lambdatalk
No edit summary
(add lambdatalk)
Line 2,685:
[[File:LabVIEW_Character_matching_2.png]]<br/>
[[File:LabVIEW_Character_matching_3.png]]
 
=={{header|Lambdatalk}}==
<lang Scheme>
{def S.in
{def S.in.r {lambda {:c :w :i :n}
{if {= :i :n}
then -1
else {if {W.equal? :c {W.get :i :w}}
then :i
else {S.in.r :c :w {+ :i 1} :n}}}}}
{lambda {:c :w}
{S.in.r :c :w 0 {W.length :w}}}}
-> S.in
 
 
 
{def startswith
{lambda {:w1 :w2}
{= {S.in _ {S.replace :w2 by _ in :w1}} 0}}}
-> startswith
 
{def endswith
{lambda {:w1 :w2}
{= {S.in _ {S.replace :w2 by _ in :w1}}
{- {W.length :w1} {W.length :w2}}}}}
-> endswith
 
{def isin
{lambda {:w1 :w2}
{S.in _ {S.replace :w2 by _ in :w1}}}}
-> isin
 
{startswith nabuchodonosor nabu}
-> true
{startswith nabuchodonosor abu}
-> false
 
{endswith nabuchodonosor sor}
-> true
{endswith nabuchodonosor oso}
-> false
 
{isin nabuchodonosor oso}
-> 10 // is in at 10
{isin nabuchodonosor xyz}
-> -1 // is not in
 
</lang>
 
=={{header|Lang5}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.