Compare length of two strings: Difference between revisions
Content added Content deleted
(adding lambdatalk contribution) |
m (→{{header|Lambdatalk}}: a minor change) |
||
Line 1,103: | Line 1,103: | ||
=={{header|Lambdatalk}}== |
=={{header|Lambdatalk}}== |
||
Lambdatalk comes with primitives working on words, [W.equal?, W.length, ...], on sentences, [S.empty?, S.first, S.rest, ...] and pairs, [P.new, P.left, P.right, ...]. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
<lang Scheme> |
<lang Scheme> |
||
{def L.new |
{def L.new |
||
{lambda {:s} |
{lambda {:s} |
||
{if {S.empty? {S.rest :s}} |
{if {S.empty? {S.rest :s}} |
||
then { |
then {P.new {S.first :s} nil} |
||
else { |
else {P.new {S.first :s} {L.new {S.rest :s}}}}}} |
||
-> L.new |
-> L.new |
||
{def L.disp |
{def L.disp |
||
Line 1,138: | Line 1,118: | ||
{if {W.equal? :l nil} |
{if {W.equal? :l nil} |
||
then |
then |
||
else {br} {W.length { |
else {br} {W.length {P.left :l}} : {P.left :l} |
||
{L.disp { |
{L.disp {P.right :l}}}}} |
||
-> L.disp |
-> L.disp |
||
</lang> |
</lang> |
||
Line 1,157: | Line 1,137: | ||
</lang> |
</lang> |
||
Then we define the L.sort function waiting for a predicate function and a list. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
<lang Scheme> |
<lang Scheme> |