Jump to content

Substring/Top and tail: Difference between revisions

(Emacs Lisp: Simplify solution)
Line 1,398:
echo substr("brooms", 1, -1), "\n"; // strip both first and last characters
?></lang>
 
=={{header|Picat}}==
Approach 1: Functions.
<lang Picat>go =>
test("upraisers"),
test("Δημοτική"),
nl.
 
test(S) =>
println(s=S),
println(butfirst=S.slice(2)),
println(butfirst=S.tail),
println(butfirst=S[2..S.len]),
println(butlast=S.but_last()),
println(butfirst_butlast=S.tail.but_last),
println(butfirst_butlast=slice(S,2,S.length-1)),
println(butfirst_butlast=[S[I] : I in 2..S.length-1]),
println(butfirst_butlast=S[2..S.length-1]),
nl.
 
but_last(S) = S.slice(1,S.length-1).</lang>
 
{{out}}
<pre>s = upraisers
butfirst = praisers
butfirst = praisers
butfirst = praisers
butlast = upraiser
butfirst_butlast = praiser
butfirst_butlast = praiser
butfirst_butlast = praiser
butfirst_butlast = praiser
 
s = Δημοτική
butfirst = ημοτική
butfirst = ημοτική
butfirst = ημοτική
butlast = Δημοτικ
butfirst_butlast = ημοτικ
butfirst_butlast = ημοτικ
butfirst_butlast = ημοτικ
butfirst_butlast = ημοτικ</pre>
 
Approach 2:
{{trans|Prolog}}
<lang Picat>go2 =>
test2("upraisers"),
nl,
test2("Δημοτική"),
nl.
 
test2(L) :-
L = [_|L1],
remove_last(L, L2),
remove_last(L1, L3),
writef("Original string : %s\n", L),
writef("Without first char : %s\n", L1),
writef("Without last char : %s\n", L2),
writef("Without first/last chars : %s\n", L3).
remove_last(L, LR) :-
append(LR, [_], L).</lang>
 
{{out}}
<pre>Original string : upraisers
Without first char : praisers
Without last char : upraiser
Without first/last chars : praiser
 
Original string : Δημοτική
Without first char : ημοτική
Without last char : Δημοτικ
Without first/last chars : ημοτικ</pre>
 
 
=={{header|PicoLisp}}==
495

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.