Substring/Top and tail: Difference between revisions
Content added Content deleted
(Emacs Lisp: Simplify solution) |
|||
Line 1,398: | Line 1,398: | ||
echo substr("brooms", 1, -1), "\n"; // strip both first and last characters |
echo substr("brooms", 1, -1), "\n"; // strip both first and last characters |
||
?></lang> |
?></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}}== |
=={{header|PicoLisp}}== |