GNU Smalltalk
Реализация языка программирования SmalltalkРеализация Smalltalk-80, являющаяся частью GNU Project. Запускается на большинстве POSIX-совместимых платформ, включая Windows и Linux.
Ссылки:
Примеры:
Hello, World!:
Пример для версий gst 3.1'Hello, World!' printNl.
Факториал:
Пример для версий gst 3.1В классе Number есть встроенный метод factorial
, который здесь и используется.
0 to: 16 do: [ :i |
i display.
'! = ' display.
i factorial displayNl
].
Числа Фибоначчи:
Пример для версий gst 3.1Используется итеративное определение чисел Фибоначчи.
a1 := 0.
a2 := 1.
0 to: 15 do: [ :i |
a2 display.
t := a1 + a2.
a1 := a2.
a2 := t.
', ' display
]
'...' displayNl.
Квадратное уравнение:
Пример для версий gst 3.1a := (stdin nextLine) asNumber.
(a == 0)
ifTrue: [
'Not a quadratic equation.' displayNl.
]
ifFalse: [
b := (stdin nextLine) asNumber.
c := (stdin nextLine) asNumber.
d := (b * b) - (4 * a * c).
(d == 0)
ifTrue: [
'x = ' display.
((-1)*b/2/a) displayNl.
]
ifFalse: [
(d > 0)
ifTrue: [
'x1 = ' display.
((-1)*b+(d sqrt)/2/a) displayNl.
'x2 = ' display.
((-1)*b-(d sqrt)/2/a) displayNl.
]
ifFalse: [
'x1 = (' display.
((-1)*b/2/a) display.
',' display.
((d abs sqrt)/2/a) display.
')' displayNl.
'x2 = (' display.
((-1)*b/2/a) display.
',' display.
((-1)*(d abs sqrt)/2/a) display.
')' displayNl.
].
].
].
CamelCase:
Пример для версий gst 3.1text := stdin nextLine asLowercase.
text := text replacingAllRegex: '([^a-zA-Z]+)' with: ' '.
cc := ''.
text onOccurrencesOfRegex: '\b(\w+)\b' do: [ :each |
word := each match.
cc := cc,((word copyFrom: 1 to: 1) asUppercase),(word copyFrom: 2 to: (word size)).
].
cc displayNl.
Комментарии
]]>blog comments powered by Disqus
]]>