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
