Rot-13: Difference between revisions
Content added Content deleted
(Improved D version) |
m (Syntax update) |
||
Line 1,596: | Line 1,596: | ||
ch@(String Character traits) rot13 |
ch@(String Character traits) rot13 |
||
[| value |
[| value | |
||
upper: ch isUppercase. |
upper ::= ch isUppercase. |
||
value: |
value := ch toLowercase as: Integer. |
||
(value >= 97) /\ |
(value >= 97) /\ [value < 110] |
||
ifTrue: [ |
ifTrue: [value += 13] |
||
ifFalse: [(value > 109) /\ |
ifFalse: [(value > 109) /\ [value <= 122] |
||
ifTrue: [ |
ifTrue: [value -= 13]]. |
||
upper |
upper |
||
ifTrue: [(value as: String Character) toUppercase] |
ifTrue: [(value as: String Character) toUppercase] |
||
Line 1,620: | Line 1,620: | ||
<lang slate>ch@(String Character traits) rot13 |
<lang slate>ch@(String Character traits) rot13 |
||
[| value |
[| value | |
||
upper: ch isUppercase. |
upper ::= ch isUppercase. |
||
value: |
value := ch toLowercase as: Integer. |
||
(value >= 97) /\ |
(value >= 97) /\ [value < 110] |
||
ifTrue: [ |
ifTrue: [value += 13] |
||
ifFalse: [(value > 109) /\ |
ifFalse: [(value > 109) /\ [value <= 122] |
||
ifTrue: [ |
ifTrue: [value -= 13]]. |
||
upper |
upper |
||
ifTrue: [(value as: String Character) toUppercase] |
ifTrue: [(value as: String Character) toUppercase] |
||
Line 1,633: | Line 1,633: | ||
s@(String traits) rot13 |
s@(String traits) rot13 |
||
[ |
|||
[| result | |
|||
result: s newSameSize. |
result ::= s newSameSize. |
||
s doWithIndex: [| :each :index | |
s doWithIndex: [| :each :index | result at: index put: each rot13]. |
||
result at: index put: each rot13]. |
|||
result |
result |
||
]. |
]. |
||
Line 1,642: | Line 1,641: | ||
slate[37]> 'abc123' rot13. |
slate[37]> 'abc123' rot13. |
||
'nop123'</lang> |
'nop123'</lang> |
||
=={{header|Smalltalk}}== |
=={{header|Smalltalk}}== |
||
{{Lines_too_long}} |
{{Lines_too_long}} |