]]> ]]>

gst 3.1

Версия реализации GNU Smalltalk языка программирования Smalltalk

Версия GNU Smalltalk, выпущенная в октябре 2008 года. Включает новые пакеты (Swazoo, Seaside, ROE, Magritte, Cairo, SDL), поддержку IPv6, новый интерфейс файловой системы и т.д.

Примеры:

Hello, World! - Smalltalk (242):

'Hello, World!' printNl.

Факториал - Smalltalk (243):

В классе Number есть встроенный метод factorial, который здесь и используется.

0 to: 16 do: [ :i |
  i display.
  '! = ' display.
  i factorial displayNl
].

Числа Фибоначчи - Smalltalk (244):

Используется итеративное определение чисел Фибоначчи.

a1 := 0.
a2 := 1.
0 to: 15 do: [ :i |
  a2 display.
  t := a1 + a2.
  a1 := a2.
  a2 := t.
  ', ' display
]
'...' displayNl.

Квадратное уравнение - Smalltalk (358):

a := (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 - Smalltalk (359):

text := 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

]]>

Работа программистам