String matching: Difference between revisions
Content added Content deleted
No edit summary |
(add lambdatalk) |
||
Line 2,685: | Line 2,685: | ||
[[File:LabVIEW_Character_matching_2.png]]<br/> |
[[File:LabVIEW_Character_matching_2.png]]<br/> |
||
[[File:LabVIEW_Character_matching_3.png]] |
[[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}}== |
=={{header|Lang5}}== |