Guile 2.9.5 β ΡΠΎΠ²Π° Π΅ ΠΏΠ΅ΡΠΎΡΠΎ Π±Π΅ΡΠ° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Scheme ΠΎΡ GNU, ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠ½ΠΎ Π·Π° ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° 3.x Π²Π΅ΡΡΠΈΡ.
Guile ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ SRFI, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΌΠΎΠ΄ΡΠ»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΡΠ»Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ POSIX, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅, ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠΎΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅. Guile ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ° ΠΊΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ, Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΡΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.
ΠΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π±Π΅ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ βΠ·Π°ΠΏΠΈΡΠΈβ (Record) Π² Π΅Π΄ΠΈΠ½.
- ΠΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡΠ°:
- Π‘ΡΠ°ΡΠΈΡΡ throw & catch ΠΎΡ Guile -> Π² ΠΏΠΎ-ΠΎΠ±ΡΠΎΠΏΡΠΈΠ΅ΡΠΈΡ Π² Scheme raise-exception & with-exception-handler.
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π² ΡΠΈΠΏΠΎΠ²Π΅ Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ.
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΡΡΠΎΠ²ΠΈΠ΅Π²ΠΈ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ Π·Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: else, =>, β¦, _.
- ΠΠ±ΡΠΎΠΏΡΠΈΠ΅ΡΠΈΡΡ gettext-Π°Π»ΠΈΠ°Ρ ΡΠ΅Π³Π° Π΅ G_.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° βr6rs, Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π΅ Π΅ ΠΏΡΠ»Π½Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° R7RS (!).
- Π€ΡΠ½ΠΊΡΠΈΡΡΠ° record-constructor Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΅ ΠΎΠ±ΡΠ²Π΅Π½Π° Π·Π° ΠΎΡΡΠ°ΡΡΠ»Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
