├── LICENSE ├── NOTICE ├── README.md ├── bosanski.scm ├── examples.scm ├── international.scm └── template.scm /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | International Scheme Version 0.1 2 | Copyright 2020 Metaphorm Solutions, Inc. 3 | 4 | This product includes code developed by Metaphorm Solutions, Inc. 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # International Scheme 2 | 3 | The purpose of this project is to translate the Scheme programming language to every human language. 4 | 5 | ## Background 6 | 7 | Scheme is a powerful programming language. How powerful? So powerful that you can translate most of Scheme into other _human_ languages within Scheme _itself_. So powerful that you can incorporate these translations into your Scheme programs as _libraries_ that you can mix and combine to write multilingual programs. So powerful that not only _can_ you do all that, but you can do it more easily than you might have ever thought possible. By using two convenient abstractions defined in this library, you too can bring the power of Scheme to your language and experience the joy of expressing your ideas directly in the language of your thoughts. 8 | 9 | ## How can I translate Scheme to my language? 10 | 11 | Two macros are defined in [international.scm](international.scm): `translate-procedure-names` and `translate-syntax-names`. 12 | 13 | * The `translate-procedure-names` macro is used to translate all the procedure names. 14 | * The `translate-syntax-names` macro is used to translate all the syntax names. 15 | 16 | Use [template.scm](template.scm) as a starting point for translations to your language. 17 | 18 | To translate Scheme to your language, simply replace each `todo` in the template with a translation of the identifier to its left. 19 | 20 | For a list of identifier definitions, please see https://www.scheme.com/tspl4/summary.html 21 | 22 | ## Where can I see an example of an existing translation? 23 | 24 | Please see [bosanski.scm](bosanski.scm) for a translation of R6RS Scheme into Bosnian. 25 | 26 | Below is a version of a "Hello, World!" (lit. "Healthy, World!") program in Scheme written in Bosnian. 27 | 28 | ``` 29 | (definiši (zdravo-svjete) 30 | (prikaži "Zdravo, Svjete!")) 31 | ``` 32 | 33 | For additional examples, please see [examples.scm](examples.scm). 34 | 35 | ## Why is the example translation in Bosnian? 36 | 37 | Because Bosnian is a language that the author of this library speaks well enough to translate. 38 | 39 | ## How can I write Scheme code in my language? 40 | 41 | When you have created a translation file, simply load it into your project and write Scheme code in your language. 42 | 43 | ## How can I contribute a translation? 44 | 45 | Please feel free to contribute PRs of new translations of Scheme to your language as well as corrections to existing translations. 46 | 47 | ## Are there parts of Scheme that cannot be translated using this library? 48 | 49 | Yes, there are a few parts of Scheme that cannot be translated using this library. 50 | 51 | For example: 52 | 53 | * Existing error messages are not translated. 54 | * Self-evaluating constants are not translated. (e.g. `#t`, `#f`, `#\c`, `12.3`, `"abc"`, etc.) 55 | * Condition type names are not translated. (e.g. `&condition`, `&who`, `&no-nans`, etc.) 56 | 57 | ## Is there anything else I should know about this library? 58 | 59 | Yes, the translation of auxiliary keywords is not hygienic. 60 | 61 | Here's an example of using the `translate-syntax-names` macro to translate the name of `cond`: 62 | 63 | ``` 64 | (translate-syntax-names cond uslov (else inače)) 65 | ``` 66 | 67 | In addition to translating `cond` to `uslov`, this will also translate the auxiliary keyword `else` (which is internal to `cond`) to `inače`. However, _all_ identifiers named `else` within `uslov` will be renamed to `inače`, even ones not in the expected position of the auxiliary keyword `else` as defined by `cond`. This can cause some unexpected behaviour, such as the following: 68 | 69 | ``` 70 | (uslov (#t (let ((else "this is not hygienic")) (display inače)))) 71 | ``` 72 | 73 | Since the expected positions of auxiliary keywords are not known outside the definition of a macro, the only way to translate `cond` to `uslov` hygienically while also translating `else` to `inače` would be to re-implement `cond` and name it `uslov`. 74 | 75 | Unfortunately, this may be a more difficult task for some forms, such as the `library` form. 76 | 77 | 78 | ## License 79 | 80 | This project is licensed under the Apache-2.0 License. 81 | 82 | 83 | 84 | Made in Canada with :heart: 85 | -------------------------------------------------------------------------------- /bosanski.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright 2020 Metaphorm Solutions, Inc. 2 | ;;; 3 | ;;; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ;;; you may not use this file except in compliance with the License. 5 | ;;; You may obtain a copy of the License at 6 | ;;; 7 | ;;; http://www.apache.org/licenses/LICENSE-2.0 8 | ;;; 9 | ;;; Unless required by applicable law or agreed to in writing, software 10 | ;;; distributed under the License is distributed on an "AS IS" BASIS, 11 | ;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ;;; See the License for the specific language governing permissions and 13 | ;;; limitations under the License. 14 | 15 | ;;; Bosanska Šema (R6RS) 16 | 17 | (load "international.scm") 18 | 19 | (translate-syntax-names 20 | and i 21 | assert trvdi 22 | begin počni 23 | buffer-mode bafer-način 24 | buffer-mode? bafer-način? 25 | case slučaj (else inače) 26 | case-lambda slučaj-lambda 27 | cond uslov (else inače) 28 | define definiši 29 | define-condition-type definiši-vrstu-stanja 30 | define-enumeration definiši-nabrajanje 31 | define-record-type definiši-vrstu-rekorda (fields polja 32 | mutable promjenljiv 33 | immutable nepromjenljiv 34 | parent roditelj 35 | protocol protokol 36 | sealed zapečaćen 37 | opaque neproziran 38 | nongenerative negenerativan 39 | parent-rtd roditelj-rvd) 40 | define-syntax definiši-sintaksu 41 | delay odgodi 42 | do uradi 43 | endianness endianstvo 44 | eol-style stil-kraja-linije 45 | error-handling-mode način-rukovanja-grešaka 46 | file-options fajl-opcije 47 | guard čuvaj (else inače) 48 | identifier-syntax identifikatorska-sintaksa 49 | if ako 50 | lambda lambda 51 | library biblioteka (and i 52 | or ili 53 | not ne 54 | import uvezi 55 | for za 56 | run pokretanje 57 | expand ekspanziju 58 | meta meta 59 | only samo 60 | except osim 61 | prefix prefiks 62 | rename preimenuj 63 | export izvezi 64 | rename preimenuj) 65 | let nek 66 | let* nek* 67 | let*-values nek*-vrijednosti 68 | let-syntax nek-sintaksa 69 | let-values nek-vrijednosti 70 | letrec nekrek 71 | letrec* nekrek* 72 | letrec-syntax nekrek-sintaksa 73 | or ili 74 | quasiquote kvazicitiraj (unquote odcitiraj 75 | unquote-splicing odcitiraj-uplečujući) 76 | quasisyntax kvazisintaksa 77 | quote citiraj 78 | record-constructor-descriptor deskriptor-konstruktora-rekorda 79 | record-type-descriptor deskriptor-vrste-rekorda 80 | set! postavi! 81 | syntax sintaksa 82 | syntax-case sintaktički-slučaj 83 | syntax-rules sintaktička-pravila 84 | unless osim-ako 85 | unsyntax odsintaksa 86 | unsyntax-splicing odsintaksa-uplečujući 87 | when kad 88 | with-syntax sa-sintaksom) 89 | 90 | (translate-procedure-names 91 | * * 92 | + + 93 | - - 94 | / / 95 | < < 96 | <= <= 97 | = = 98 | > > 99 | >= >= 100 | abs aps 101 | acos akos 102 | angle ugao 103 | append dodaj 104 | apply apliciraj 105 | asin asin 106 | assertion-violation validacija-tvrdnje 107 | assertion-violation? validacija-tvrdnje? 108 | assoc assoc 109 | assp assp 110 | assq assq 111 | assv assv 112 | atan atan 113 | binary-port? binarni-port? 114 | bitwise-and bitni-i 115 | bitwise-arithmetic-shift bitni-aritmetički-pomak 116 | bitwise-arithmetic-shift-left bitni-aritmetički-pomak-ljevo 117 | bitwise-arithmetic-shift-right bitni-aritmetički-pomak-desno 118 | bitwise-bit-count bitni-broj-bitova 119 | bitwise-bit-field bitni-polje-bitova 120 | bitwise-bit-set? bitni-skup-bitova? 121 | bitwise-copy-bit bitni-kopiraj-bit 122 | bitwise-copy-bit-field bitni-kopiraj-polje-bitova 123 | bitwise-first-bit-set bitni-prvi-skup-bitova 124 | bitwise-if bitno-ako 125 | bitwise-ior bitno-uključivo-ili 126 | bitwise-length bitna-dužina 127 | bitwise-not bitno-ne 128 | bitwise-reverse-bit-field bitno-preokreni-polje-bitova 129 | bitwise-rotate-bit-field bitno-rotiraj-polje-bitova 130 | bitwise-xor bitno-isključivo-ili 131 | boolean=? booleov=? 132 | boolean? booleov? 133 | bound-identifier=? vezan-identifikator=? 134 | bytevector->sint-list bajtvektor->ocij-lista 135 | bytevector->string bajtvektor->string 136 | bytevector->u8-list bajtvektor->n8-lista 137 | bytevector->uint-list bajtvektor->ncij-lista 138 | bytevector-copy bajtvektor-kopiraj 139 | bytevector-copy! bajtvektor-kopiraj! 140 | bytevector-fill! bajtvektor-ispuni! 141 | bytevector-ieee-double-native-ref bajtvektor-ieee-dupli-domaći-ref 142 | bytevector-ieee-double-native-set! bajtvektor-ieee-dupli-domaći-postavi! 143 | bytevector-ieee-double-ref bajtvektor-ieee-dupli-ref 144 | bytevector-ieee-double-set! bajtvektor-ieee-dupli-postavi! 145 | bytevector-ieee-single-native-ref bajtvektor-ieee-jednokrevetni-domaći-ref 146 | bytevector-ieee-single-native-set! bajtvektor-ieee-jednokrevetni-domaći-postavi! 147 | bytevector-ieee-single-ref bajtvektor-ieee-jednokrevetni-ref 148 | bytevector-ieee-single-set! bajtvektor-ieee-jednokrevetni-postavi! 149 | bytevector-length bajtvektor-dužina 150 | bytevector-s16-native-ref bajtvektor-o16-domaći-ref 151 | bytevector-s16-native-set! bajtvektor-o16-domaći-postavi! 152 | bytevector-s16-ref bajtvektor-o16-ref 153 | bytevector-s16-set! bajtvektor-o16-postavi! 154 | bytevector-s32-native-ref bajtvektor-o32-domaći-ref 155 | bytevector-s32-native-set! bajtvektor-o32-domaći-postavi! 156 | bytevector-s32-ref bajtvektor-o32-ref 157 | bytevector-s32-set! bajtvektor-o32-postavi! 158 | bytevector-s64-native-ref bajtvektor-o64-domaći-ref 159 | bytevector-s64-native-set! bajtvektor-o64-domaći-postavi! 160 | bytevector-s64-ref bajtvektor-o64-ref 161 | bytevector-s64-set! bajtvektor-o64-postavi! 162 | bytevector-s8-ref bajtvektor-o8-ref 163 | bytevector-s8-set! bajtvektor-o8-postavi! 164 | bytevector-sint-ref bajtvektor-ocij-ref 165 | bytevector-sint-set! bajtvektor-ocij-postavi! 166 | bytevector-u16-native-ref bajtvektor-n16-domaći-ref 167 | bytevector-u16-native-set! bajtvektor-n16-domaći-postavi! 168 | bytevector-u16-ref bajtvektor-n16-ref 169 | bytevector-u16-set! bajtvektor-n16-postavi! 170 | bytevector-u32-native-ref bajtvektor-n32-domaći-ref 171 | bytevector-u32-native-set! bajtvektor-n32-domaći-postavi! 172 | bytevector-u32-ref bajtvektor-n32-ref 173 | bytevector-u32-set! bajtvektor-n32-postavi! 174 | bytevector-u64-native-ref bajtvektor-n32-domaći-ref 175 | bytevector-u64-native-set! bajtvektor-n32-domaći-postavi! 176 | bytevector-u64-ref bajtvektor-n32-ref 177 | bytevector-u64-set! bajtvektor-n32-postavi! 178 | bytevector-u8-ref bajtvektor-n8-ref 179 | bytevector-u8-set! bajtvektor-n8-postavi! 180 | bytevector-uint-ref bajtvektor->ncij-ref 181 | bytevector-uint-set! bajtvektor->ncij-postavi! 182 | bytevector=? bajtvektor=? 183 | bytevector? bajtvektor? 184 | caaaar caaaar 185 | caaadr caaadr 186 | caaar caaar 187 | caadar caadar 188 | caaddr caaddr 189 | caadr caadr 190 | caar caar 191 | cadaar cadaar 192 | cadadr cadadr 193 | cadar cadar 194 | caddar caddar 195 | cadddr cadddr 196 | caddr caddr 197 | cadr cadr 198 | call-with-bytevector-output-port zovi-sa-bajtvektor-izlaznim-portom 199 | call-with-current-continuation zovi-sa-tekućim-nastavkom 200 | call-with-input-file zovi-sa-ulaznim-fajlom 201 | call-with-output-file zovi-sa-izlaznim-fajlom 202 | call-with-port zovi-sa-portom 203 | call-with-string-output-port zovi-sa-string-izlaznim-portom 204 | call-with-values zovi-sa-vrijednostima 205 | call/cc zovi/tn 206 | car car 207 | cdaaar cdaaar 208 | cdaadr cdaadr 209 | cdaar cdaar 210 | cdadar cdadar 211 | cdaddr cdaddr 212 | cdadr cdadr 213 | cdar cdar 214 | cddaar cddaar 215 | cddadr cddadr 216 | cddar cddar 217 | cdddar cdddar 218 | cddddr cddddr 219 | cdddr cdddr 220 | cddr cddr 221 | cdr cdr 222 | ceiling plafon 223 | char->integer kar->cijeli-broj 224 | char-alphabetic? kar-abecedan? 225 | char-ci<=? kar-vim<=? 226 | char-ci=? kar-vim>=? 229 | char-ci>? kar-vim>? 230 | char-downcase kar-smaji-slova 231 | char-foldcase kar-savij-slova 232 | char-general-category kar-opšta-kategorija 233 | char-lower-case? kar-mala-slova? 234 | char-numeric? kar-numerički? 235 | char-title-case? kar-veliko-prvo-slovo 236 | char-titlecase kar-uvećaj-prvo-slovo 237 | char-upcase kar-uvećaj-slova 238 | char-upper-case? kar-velika-slova? 239 | char-whitespace? kar-razmak 240 | char<=? kar<=? 241 | char=? kar>=? 244 | char>? kar>? 245 | char? kar? 246 | close-input-port zatvori-ulazni-port 247 | close-output-port zatvori-izlazni-port 248 | close-port zatvori-port 249 | command-line naredbena-linija 250 | complex? kompleksan? 251 | condition stanje 252 | condition-accessor stanje-pristupac 253 | condition-irritants stanje-iritanti 254 | condition-message stanje-sa-porukom 255 | condition-predicate stanje-predikat 256 | condition-who stanje-ko 257 | condition? stanje? 258 | cons cons 259 | cons* cons* 260 | cos kos 261 | current-error-port tekući-port-greške 262 | current-input-port tekući-ulazni-port 263 | current-output-port tekući-izlazni-port 264 | datum->syntax podatak->sintaksa 265 | delete-file izbriši-fajl 266 | denominator nazivnik 267 | display prikaži 268 | div dje 269 | div-and-mod dje-i-mod 270 | div0 dje0 271 | div0-and-mod0 dje0-i-mod0 272 | dynamic-wind dinamički-namotaj 273 | enum-set->list nabr-skup->lista 274 | enum-set-complement nabr-skup-komplement 275 | enum-set-constructor nabr-skup-konstruktor 276 | enum-set-difference nabr-skup-razlika 277 | enum-set-indexer nabr-skup-indeksovac 278 | enum-set-intersection nabr-skup-presjek 279 | enum-set-member? nabr-skup-član 280 | enum-set-projection nabr-skup-projekcija 281 | enum-set-subset? nabr-skup-podskup 282 | enum-set-union nabr-skup-unija 283 | enum-set-universe nabr-skup-univerzum 284 | enum-set=? nabr-skup=? 285 | environment okruženje 286 | eof-object kraj-fajla-objekat 287 | eof-object? kraj-fajla-objekat? 288 | eq? jnk? 289 | equal-hash jednak-heš 290 | equal? jednak? 291 | eqv? ekv? 292 | error greška 293 | error? greška? 294 | eval eval 295 | even? paran? 296 | exact tačan 297 | exact->inexact tačan->netačan 298 | exact-integer-sqrt tačan-cijeli-broj-kvkn 299 | exact? tačan 300 | exists postoji 301 | exit izađi 302 | exp eksp 303 | expt ekspt 304 | file-exists? fajl-postoji? 305 | filter filter 306 | find nađi 307 | finite? konačan? 308 | fixnum->flonum fiksbroj->flobroj 309 | fixnum-width fiksbroj-širina 310 | fixnum? fiksbroj? 311 | fl* fl* 312 | fl+ fl+ 313 | fl- fl- 314 | fl/ fl/ 315 | fl<=? fl<=? 316 | fl=? fl>=? 319 | fl>? fl>? 320 | flabs flaps 321 | flacos flakos 322 | flasin flasin 323 | flatan flatan 324 | flceiling flplafon 325 | flcos flkos 326 | fldenominator flnazivnik 327 | fldiv fldje 328 | fldiv-and-mod fldje-i-mod 329 | fldiv0 fldje0 330 | fldiv0-and-mod0 fldje0-i-mod0 331 | fleven? flparan? 332 | flexp flexp 333 | flexpt flexpt 334 | flfinite? flkonačan? 335 | flfloor flpod? 336 | flinfinite? flbeskonačan? 337 | flinteger? flcijeli-broj? 338 | fllog fllog 339 | flmax flmaks 340 | flmin flmin 341 | flmod flmod 342 | flmod0 flmod0 343 | flnan? flnijebroj? 344 | flnegative? flnegativan? 345 | flnumerator flbrojnik 346 | flodd? flneparan? 347 | flonum? flobroj? 348 | floor pod 349 | flpositive? flpozitivan? 350 | flround flzaokruži 351 | flsin flsin 352 | flsqrt flkvkn 353 | fltan fltan 354 | fltruncate flskrati 355 | flush-output-port speri-izlazni-port 356 | flzero? flnula? 357 | fold-left savij-ljevo 358 | fold-right savij-desno 359 | for-all za-sve 360 | for-each za-svaki 361 | force prisili 362 | free-identifier=? slobodan-identifikator=? 363 | fx* fks* 364 | fx*/carry fks*/nosi 365 | fx+ fks+ 366 | fx+/carry fks+/nosi 367 | fx- fks- 368 | fx-/carry fks-/nosi 369 | fx<=? fks<=? 370 | fx=? fks>=? 373 | fx>? fks>? 374 | fxand fksi 375 | fxarithmetic-shift fksaritmetički-pomak 376 | fxarithmetic-shift-left fksaritmetički-pomak-ljevo 377 | fxarithmetic-shift-right fksaritmetički-pomak-desno 378 | fxbit-count fksbroj-bitova 379 | fxbit-field fkspolje-bitova 380 | fxbit-set? fksskup-bitova? 381 | fxcopy-bit fkskopiraj-bit 382 | fxcopy-bit-field fks-polje-bitova 383 | fxdiv fksdje 384 | fxdiv-and-mod fksdje-i-mod 385 | fxdiv0 fxdje0 386 | fxdiv0-and-mod0 fksdje0-i-mod0 387 | fxeven? fksparan? 388 | fxfirst-bit-set fksprvi-skup-bitova 389 | fxif fksako 390 | fxior fksiili 391 | fxlength fksdužina 392 | fxmax fksmaks 393 | fxmin fksmin 394 | fxmod fksmod 395 | fxmod0 fksmod0 396 | fxnegative? fksnegativan? 397 | fxnot fksne 398 | fxodd? fksneparan? 399 | fxpositive? fkspozitivan? 400 | fxreverse-bit-field fks-preokreni-polje-bitova 401 | fxrotate-bit-field fks-rotiraj-polje-bitova 402 | fxxor fksksili 403 | fxzero? fksnula? 404 | gcd nzd 405 | generate-temporaries generiraj-privremene 406 | get-bytevector-all dobij-bajtvektor-sve 407 | get-bytevector-n dobij-bajtvektor-n 408 | get-bytevector-n! dobij-bajtvektor-n! 409 | get-bytevector-some dobij-bajtvektor-neki 410 | get-char dobij-kar 411 | get-datum dobij-podatak 412 | get-line dobij-liniju 413 | get-string-all dobij-string-sve 414 | get-string-n dobij-string-n 415 | get-string-n! dobij-string-n! 416 | get-u8 dobij-n8 417 | greatest-fixnum najveći-fiksbroj 418 | hashtable-clear! heštabelu-očisti 419 | hashtable-contains? heštabela-sadrži? 420 | hashtable-copy heštabelu-kopiraj 421 | hashtable-delete! heštabelu-izbriši! 422 | hashtable-entries heštabele-unosi 423 | hashtable-equivalence-function heštabele-funkcija-ekvivalencije 424 | hashtable-hash-function heštabele-heš-funkcija 425 | hashtable-keys heštabele-ključevi 426 | hashtable-mutable? heštabela-promjenljiva? 427 | hashtable-ref heštabeli-ref 428 | hashtable-set! heštabeli-postavi! 429 | hashtable-size heštabele-veličina 430 | hashtable-update! heštabelu-ažuriraj! 431 | hashtable? heštabela? 432 | i/o-decoding-error? u/i-greška-dekodiranja? 433 | i/o-encoding-error-char u/i-greška-kodiranja-kar 434 | i/o-encoding-error? u/i-greška-kodiranja? 435 | i/o-error-filename u/i-greška-ime-falja 436 | i/o-error-port u/i-greška-porta 437 | i/o-error-position u/i-greška-pozicije 438 | i/o-error? u/i-greška? 439 | i/o-file-already-exists-error? u/i-greška-fajl-već-postoji? 440 | i/o-file-does-not-exist-error? u/i-greška-fajl-ne-postoji? 441 | i/o-file-is-read-only-error? u/i-greška-fajl-je-samo-za-čitanje? 442 | i/o-file-protection-error? u/i-greška-zaštite-fajla? 443 | i/o-filename-error? u/i-greška-ime-falja? 444 | i/o-invalid-position-error? u/i-greška-nevažeća-pozicija? 445 | i/o-port-error? u/i-greška-porta? 446 | i/o-read-error? i/o-greška-u-čitanju? 447 | i/o-write-error? u/i-greška-u-pisanju? 448 | identifier? identifikator? 449 | imag-part imag-dio 450 | implementation-restriction-violation? kršenje-ograničenja-implementacije? 451 | inexact netačan 452 | inexact->exact netačan->tačan 453 | inexact? netačan? 454 | infinite? beskonačan? 455 | input-port? ulazni-port? 456 | integer->char cijeli-broj->kar 457 | integer-valued? vrijednost-cijeli-broj? 458 | integer? cijeli-broj? 459 | irritants-condition? iritanti-stanje? 460 | latin-1-codec latinski-1-kodek 461 | lcm nzm 462 | least-fixnum najmanji-fiksbroj 463 | length dužina 464 | lexical-violation? leksičko-kršenje? 465 | list lista 466 | list->string lista->string 467 | list->vector lista->vektor 468 | list-ref lista-ref 469 | list-sort lista-sortiraj 470 | list-tail lista-rep 471 | list? lista? 472 | load učitaj 473 | log log 474 | lookahead-char sljedeći-kar 475 | lookahead-u8 sljedeći-n8 476 | magnitude veličina 477 | make-assertion-violation napravi-kršenje-tvrdnje 478 | make-bytevector napravi-bajtvektor 479 | make-custom-binary-input-port napravi-binarni-ulazni-port-po-narudžbini 480 | make-custom-binary-input/output-port napravi-binarni-ulazni/izlazni-port-po-narudžbini 481 | make-custom-binary-output-port napravi-binarni-izlazni-port-po-narudžbini 482 | make-custom-textual-input-port napravi-tekstualni-ulazni-port-po-narudžbini 483 | make-custom-textual-input/output-port napravi-tekstualni-ulazni/izlazni-port-po-narudžbini 484 | make-custom-textual-output-port napravi-tekstualni-izlazni-port-po-narudžbini 485 | make-enumeration napravi-nabrajanje 486 | make-eq-hashtable napravi-jnk-heštabelu 487 | make-eqv-hashtable napravi-ekv-heštabelu 488 | make-error napravi-grešku 489 | make-hashtable napravi-heštabelu 490 | make-i/o-decoding-error napravi-u/i-grešku-dekodiranja 491 | make-i/o-encoding-error napravi-u/i-grešku-kodiranja 492 | make-i/o-error napravi-u/i-grešku 493 | make-i/o-file-already-exists-error napravi-u/i-fajl-već-postoji-greška 494 | make-i/o-file-does-not-exist-error napravi-u/i-fajl-ne-postoji-greška 495 | make-i/o-file-is-read-only-error napravi-u/i-fajl-je-samo-za-čitanje-greška 496 | make-i/o-file-protection-error napravi-u/i-fajl-zaštićen-greška 497 | make-i/o-filename-error napravi-u/i-ime-fajla-greška 498 | make-i/o-invalid-position-error napravi-u/i-nevažeća-pozicija-greška 499 | make-i/o-port-error napravi-u/i-port-greška 500 | make-i/o-read-error napravi-u/i-čitanje-greška 501 | make-i/o-write-error napravi-u/i-pisanje-greška 502 | make-implementation-restriction-violation napravi-kršenje-ograničenja-implementacije 503 | make-irritants-condition napravi-stanje-iritanti 504 | make-lexical-violation napraviti-leksičko-kršenje 505 | make-message-condition napravi-stanje-sa-porukom 506 | make-no-infinities-violation napravi-zabranjena-beskonačnost-kršenje 507 | make-no-nans-violation napravi-zabranjeno-nije-broj-kršenje 508 | make-non-continuable-violation napravi-ne-nastavljivo-kršenje 509 | make-polar napravi-polarni 510 | make-record-constructor-descriptor napravi-rekord-konstruktor-deskriptor 511 | make-record-type-descriptor napravi-rekord-vrsta-deskriptor 512 | make-rectangular napravi-pravougaoni 513 | make-serious-condition napravi-ozbiljno-stanje 514 | make-string napravi-string 515 | make-syntax-violation napravi-sintaktičko-kršenje 516 | make-transcoder napravi-transkoder 517 | make-undefined-violation napravi-nedefinisan-kršenje 518 | make-variable-transformer napravi-varijabilni-transformator 519 | make-vector napravi-vektor 520 | make-violation navpravi-kršenje 521 | make-warning napravi-upozorenje 522 | make-who-condition napravi-ko-stanje 523 | map mapiraj 524 | max maks 525 | member član 526 | memp člap 527 | memq člaj 528 | memv člav 529 | message-condition? stanje-sa-porukom? 530 | min min 531 | mod mod 532 | mod0 mod0 533 | modulo modulo 534 | nan? nijebroj? 535 | native-endianness domaće-endianstvo 536 | native-eol-style domaći-stil-kraja-linija 537 | native-transcoder domaći-transkoder 538 | negative? negativan? 539 | newline novalinija 540 | no-infinities-violation? zabranjena-beskonačnost-kršenje? 541 | no-nans-violation? zabranjeno-nije-broj-kršenje? 542 | non-continuable-violation? ne-nastavljivo-kršenje? 543 | not ne 544 | null-environment null-okruženje 545 | null? null? 546 | number->string broj->string 547 | number? broj? 548 | numerator brojnik 549 | odd? neparan? 550 | open-bytevector-input-port otvori-bajtvektorni-ulazni-port 551 | open-bytevector-output-port otvori-bajtvektorni-izlazni-port 552 | open-file-input-port otvori-ulazni-port-za-fajl 553 | open-file-input/output-port otvori-ulazni/izlazni-port-za-fajl 554 | open-file-output-port otvori-izlazni-port-za-fajl 555 | open-input-file otvori-ulazni-fajl 556 | open-output-file otvori-izlazni-fajl 557 | open-string-input-port otvori-ulazni-port-za-string 558 | open-string-output-port otvori-izlazni-port-za-string 559 | output-port-buffer-mode bafer-način-izlasnog-porta 560 | output-port? izlazni-port? 561 | pair? par? 562 | partition odjeli 563 | peek-char viri-kar 564 | port-eof? port-na-kraju-fajla? 565 | port-has-port-position? port-ima-port-poziciju? 566 | port-has-set-port-position!? port-ima-postavi-port-poziciju!? 567 | port-position port-pozicija 568 | port-transcoder port-transkoder 569 | port? port? 570 | positive? pozitivan? 571 | procedure? procedura? 572 | put-bytevector stavi-bajtvektor 573 | put-char stavi-kar 574 | put-datum stavi-podatak 575 | put-string stavi-string 576 | put-u8 stavi-n8 577 | quotient kvocijent 578 | raise podigni 579 | raise-continuable podigni-nastavljivo 580 | rational-valued? vrijednost-racionalna? 581 | rational? racionalan? 582 | rationalize racionaliziraj 583 | read čitaj 584 | read-char učitaj-kar 585 | real->flonum stvarni->flobroj 586 | real-part stvarni-dio 587 | real-valued? vrijednost-stvarna? 588 | real? stvaran? 589 | record-accessor rekord-pristupac 590 | record-constructor rekord-konstruktor 591 | record-field-mutable? rekord-polje-promjenljivo? 592 | record-mutator rekord-mjenjač 593 | record-predicate rekord-predikat 594 | record-rtd rekord-rvd 595 | record-type-descriptor? rekord-vrsta-deskriptor? 596 | record-type-field-names rekord-vrsta-imena-polja 597 | record-type-generative? rekord-vrsta-generativna? 598 | record-type-name rekord-vrsta-ime 599 | record-type-opaque? rekord-vrsta-neproziran? 600 | record-type-parent rekord-vrsta-roditelj 601 | record-type-sealed? rekord-vrsta-zapečaćen? 602 | record-type-uid rekord-vrsta-uid 603 | record? rekord? 604 | remainder ostatak 605 | remove ukloni 606 | remp uklp 607 | remq uklj 608 | remv uklv 609 | reverse preokreni 610 | round zaokruži 611 | scheme-report-environment šemino-izveštajno-okruženje 612 | serious-condition? ozbiljno-stanje? 613 | set-car! postavi-car! 614 | set-cdr! postavi-cdr! 615 | set-port-position! postavi-poziciju-porta! 616 | simple-conditions jednostavna-stanja 617 | sin sin 618 | sint-list->bytevector ocij-lista->bajtvektor 619 | sqrt kvkn 620 | standard-error-port standardni-port-za-greške 621 | standard-input-port standradni-ulazni-port 622 | standard-output-port standardni-izlazni-port 623 | string string 624 | string->bytevector string->bajtvektor 625 | string->list string->lista 626 | string->number string->broj 627 | string->symbol string->simbol 628 | string->utf16 string->utf16 629 | string->utf32 string->utf32 630 | string->utf8 string->utf8 631 | string-append string-dodaj 632 | string-ci-hash string-vim-heš 633 | string-ci<=? string-vim<=? 634 | string-ci=? string-vim>=? 637 | string-ci>? string-vim>? 638 | string-copy string-kopiraj 639 | string-downcase string-smaji-slova 640 | string-fill! string-ispuni! 641 | string-foldcase string-savij-slova 642 | string-for-each string-za-svaki 643 | string-hash string-heš 644 | string-length string-dužina 645 | string-normalize-nfc string-normaliziraj-nfc 646 | string-normalize-nfd string-normaliziraj-nfd 647 | string-normalize-nfkc string-normaliziraj-nfkc 648 | string-normalize-nfkd string-normaliziraj-nfkd 649 | string-ref string-ref 650 | string-set! string-postavi! 651 | string-titlecase kar-uvećaj-prva-slova 652 | string-upcase string-uvećaj-slova 653 | string<=? string<=? 654 | string=? string>=? 657 | string>? string>? 658 | string? string? 659 | substring podstring 660 | symbol->string simbol->string 661 | symbol-hash simbol-heš 662 | symbol=? simbol=? 663 | symbol? simbol? 664 | syntax->datum sintaksa->podatak 665 | syntax-violation sintaktičko-kršenje 666 | syntax-violation-form sintaktičko-kršenje-forma 667 | syntax-violation-subform sintaktičko-kršenje-podforma 668 | syntax-violation? sintaktičko-kršenje? 669 | tan tan 670 | textual-port? tekstualni-port? 671 | transcoded-port transkodirani-port 672 | transcoder-codec transkoder-kodek 673 | transcoder-eol-style transkoder-stil-kraja-linije 674 | transcoder-error-handling-mode način-rukovanja-transkoder-grešaka 675 | truncate skrati 676 | u8-list->bytevector n8-lista->bajtvektor 677 | uint-list->bytevector ncij-lista->bajtvektor 678 | undefined-violation? nedefinisan-kršenje? 679 | utf-16-codec utf-16-kodek 680 | utf-8-codec utf-8-kodek 681 | utf16->string utf16->string 682 | utf32->string utf32->string 683 | utf8->string utf8->string 684 | values vrijednosti 685 | vector vektor 686 | vector->list vektor->lista 687 | vector-fill! vektor-ispuni! 688 | vector-for-each vektor-za-svaki 689 | vector-length vektor-dužina 690 | vector-map vektor-mapa 691 | vector-ref vektor-ref 692 | vector-set! vektor-postavi! 693 | vector-sort vektor-sortiraj 694 | vector-sort! vektor-sortiraj! 695 | vector? vektor? 696 | violation? prekršaj? 697 | warning? upozorenje? 698 | who-condition? ko-stanje? 699 | with-exception-handler sa-izuzetak-rukovateljom 700 | with-input-from-file sa-ulazom-od-fajla 701 | with-output-to-file sa-izlazom-do-fajla 702 | write piši 703 | write-char piši-kar 704 | zero? nula?) 705 | -------------------------------------------------------------------------------- /examples.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright 2020 Metaphorm Solutions, Inc. 2 | ;;; 3 | ;;; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ;;; you may not use this file except in compliance with the License. 5 | ;;; You may obtain a copy of the License at 6 | ;;; 7 | ;;; http://www.apache.org/licenses/LICENSE-2.0 8 | ;;; 9 | ;;; Unless required by applicable law or agreed to in writing, software 10 | ;;; distributed under the License is distributed on an "AS IS" BASIS, 11 | ;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ;;; See the License for the specific language governing permissions and 13 | ;;; limitations under the License. 14 | 15 | (load "bosanski.scm") 16 | 17 | (definiši (zdravo-svjete) 18 | (prikaži "Zdravo, Svjete!")) 19 | 20 | (definiši (faktoriel n) 21 | (ako (= n 1) 22 | 1 23 | (* n (faktoriel (- n 1))))) 24 | 25 | (definiši-sintaksu definiši-sintaktičko-pravilo 26 | (sintaktička-pravila () 27 | ((_ (ime itd ...) šablon) 28 | (definiši-sintaksu ime 29 | (sintaktička-pravila () 30 | ((_ itd ...) šablon)))))) 31 | 32 | (definiši-sintaktičko-pravilo (sa (promjenjiva vrijednost) tijelo ...) 33 | (nek ((promjenjiva vrijednost)) tijelo ...)) 34 | 35 | (definiši-sintaktičko-pravilo (kad uslov tijelo ...) 36 | (ako uslov (počni tijelo ...))) 37 | 38 | (definiši-sintaktičko-pravilo (dok uslov tijelo ...) 39 | (nek ponovi () 40 | (kad uslov 41 | tijelo ... (ponovi)))) 42 | 43 | (sa (x 3) 44 | (dok (< x 10) 45 | (postavi! x (+ x 1)) 46 | (prikaži x))) 47 | 48 | (definiši-sintaksu za 49 | (sintaktička-pravila (u) 50 | ((_ (predmet u predmetima) tijelo ...) 51 | (za-svaki (lambda (predmet) tijelo ...) predmetima)))) 52 | 53 | (sa (predmeti (lista 1 2 3 4 5 6 7)) 54 | (za (predmet u predmeti) 55 | (prikaži (+ predmet 1)))) 56 | 57 | (definiši-sintaktičko-pravilo (za-petlja ((promjenjiva početno) uslov priraštaj) tijelo ...) 58 | (nek ponovi ((promjenjiva početno)) 59 | (ako uslov 60 | (počni tijelo ... (ponovi priraštaj))))) 61 | 62 | (definiši-sintaktičko-pravilo (ponovi broj tijelo ...) 63 | (za-petlja ((promjenjiva 0) (< promjenjiva broj) (+ promjenjiva 1)) 64 | tijelo ...)) 65 | 66 | (ponovi 10 (prikaži "Radi! ")) 67 | 68 | (definiši-sintaksu izgradi-izraze 69 | (sintaktička-pravila () 70 | ((_ op ((arg ...) ...)) 71 | (počni (op arg ...) ...)))) 72 | 73 | (definiši-sintaksu (apliciraj-grupama stks) 74 | (sintaktički-slučaj stks () 75 | ((_ op a () (b c ...)) 76 | #'(apliciraj-grupama op a (b) (c ...))) 77 | ((_ op a (b) (c d ...)) 78 | (osim-ako (identifikator? #'b) 79 | (podigni (napravi-stanje-sa-porukom "ne-simbol pronađen umjesto promenljive"))) 80 | #'(apliciraj-grupama op a (b c) (d ...))) 81 | ((_ op (a ...) (b c) ((d ...) e ...)) 82 | #'(apliciraj-grupama op (a ... (b c (d ...))) () (e ...))) 83 | ((_ op (a ...) (b c) (d ...)) 84 | #'(apliciraj-grupama op (a ... (b c)) () (d ...))) 85 | ((_ op (a ...) (b) ()) 86 | (podigni (napravi-stanje-sa-porukom "pogrešan broj argumenata"))) 87 | ((_ op a () ()) 88 | #'(izgradi-izraze op a)))) 89 | 90 | (definiši-sintaksu definiši-grupiran-izraz 91 | (sintaktička-pravila () 92 | ((_ ime op) 93 | (definiši-sintaksu ime 94 | (sintaktička-pravila () 95 | ((_ arg (... ...)) 96 | (apliciraj-grupama op () () (arg (... ...))))))))) 97 | 98 | (definiši-sintaksu (prevedi-ime-procedure stks) 99 | (sintaktički-slučaj stks () 100 | ((_ originalno-ime prevedeno-ime) 101 | (ne (vezan-identifikator=? #'originalno-ime #'prevedeno-ime)) 102 | #'(definiši prevedeno-ime originalno-ime)) 103 | ((_ originalno-ime prevedeno-ime) 104 | #''()))) 105 | 106 | (definiši-grupiran-izraz prevedi-imena-procedura prevedi-ime-procedure) 107 | 108 | (definiši (zamijeni orig zamj ulaz) 109 | (nek rek ((u ulaz) (iz '())) 110 | (ako (null? u) 111 | (preokreni iz) 112 | (nek ((tren (car u))) 113 | (ako (lista? tren) 114 | (rek (cdr u) (cons (rek tren '()) iz)) 115 | (ako (jnk? tren orig) 116 | (rek (cdr u) (cons zamj iz)) 117 | (rek (cdr u) (cons tren iz)))))))) 118 | 119 | (definiši-sintaksu (zamijeni-sporedne-ključne-riječi stks) 120 | (sintaktički-slučaj stks () 121 | ((_ op k (a) . in) 122 | (podigni (napravi-stanje-sa-porukom "nedostaje prijevod sporednih ključnih riječi"))) 123 | ((_ op k (o0 p0 o1 p1 ...) . in) 124 | (sa-sintaksom ((tin (podatak->sintaksa #'k (zamijeni 125 | (sintaksa->podatak #'p0) 126 | (sintaksa->podatak #'o0) 127 | (sintaksa->podatak #'in))))) 128 | #'(zamijeni-sporedne-ključne-riječi op k (o1 p1 ...) . tin))) 129 | ((_ op k (o p) . in) 130 | (sa-sintaksom ((forma (podatak->sintaksa #'k (cons (sintaksa->podatak #'op) 131 | (zamijeni 132 | (sintaksa->podatak #'p) 133 | (sintaksa->podatak #'o) 134 | (sintaksa->podatak #'in)))))) 135 | #'forma)))) 136 | 137 | (definiši-sintaksu (prevedi-ime-sintakse stks) 138 | (sintaktički-slučaj stks () 139 | ((_ originalno-ime prevedeno-ime) 140 | (ne (vezan-identifikator=? #'originalno-ime #'prevedeno-ime)) 141 | #'(definiši-sintaksu prevedeno-ime 142 | (sintaktička-pravila () 143 | ((_ arg (... ...)) 144 | (originalno-ime arg (... ...)))))) 145 | ((_ originalno-ime prevedeno-ime) 146 | #''()) 147 | ((_ originalno-ime prevedeno-ime prijevodi-sporednih-ključnih-riječi) 148 | (ne (vezan-identifikator=? #'originalno-ime #'prevedeno-ime)) 149 | #`(definiši-sintaksu (prevedeno-ime stks) 150 | (sintaktički-slučaj stks () 151 | ((k arg (... ...)) 152 | #'(zamijeni-sporedne-ključne-riječi originalno-ime 153 | k 154 | (#,@#'prijevodi-sporednih-ključnih-riječi) 155 | arg (... ...)))))) 156 | ((_ originalno-ime prevedeno-ime prijevodi-sporednih-ključnih-riječi) 157 | #''()))) 158 | 159 | (definiši-grupiran-izraz prevedi-imena-sintaksa prevedi-ime-sintakse) 160 | -------------------------------------------------------------------------------- /international.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright 2020 Metaphorm Solutions, Inc. 2 | ;;; 3 | ;;; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ;;; you may not use this file except in compliance with the License. 5 | ;;; You may obtain a copy of the License at 6 | ;;; 7 | ;;; http://www.apache.org/licenses/LICENSE-2.0 8 | ;;; 9 | ;;; Unless required by applicable law or agreed to in writing, software 10 | ;;; distributed under the License is distributed on an "AS IS" BASIS, 11 | ;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ;;; See the License for the specific language governing permissions and 13 | ;;; limitations under the License. 14 | 15 | (define-syntax build-expressions 16 | (syntax-rules () 17 | ((_ op ((arg ...) ...)) 18 | (begin (op arg ...) ...)))) 19 | 20 | (define-syntax (apply-to-groups stx) 21 | (syntax-case stx () 22 | ((_ op a () (b c ...)) 23 | #'(apply-to-groups op a (b) (c ...))) 24 | ((_ op a (b) (c d ...)) 25 | (unless (identifier? #'b) 26 | (raise (make-message-condition "non-symbol in found in place of variable"))) 27 | #'(apply-to-groups op a (b c) (d ...))) 28 | ((_ op (a ...) (b c) ((d ...) e ...)) 29 | #'(apply-to-groups op (a ... (b c (d ...))) () (e ...))) 30 | ((_ op (a ...) (b c) (d ...)) 31 | #'(apply-to-groups op (a ... (b c)) () (d ...))) 32 | ((_ op (a ...) (b) ()) 33 | (raise (make-message-condition "incorrect number of arguments"))) 34 | ((_ op a () ()) 35 | #'(build-expressions op a)))) 36 | 37 | (define-syntax define-grouping-expression 38 | (syntax-rules () 39 | ((_ name op) 40 | (define-syntax name 41 | (syntax-rules () 42 | ((_ arg (... ...)) 43 | (apply-to-groups op () () (arg (... ...))))))))) 44 | 45 | (define-syntax (translate-procedure-name stx) 46 | (syntax-case stx () 47 | ((_ original-name translated-name) 48 | (not (bound-identifier=? #'original-name #'translated-name)) 49 | #'(define translated-name original-name)) 50 | ((_ original-name translated-name) 51 | #''()))) 52 | 53 | (define-grouping-expression translate-procedure-names translate-procedure-name) 54 | 55 | (define (replace orig rep input) 56 | (let rec ((in input) (out '())) 57 | (if (null? in) 58 | (reverse out) 59 | (let ((curr (car in))) 60 | (if (list? curr) 61 | (rec (cdr in) (cons (rec curr '()) out)) 62 | (if (eq? curr orig) 63 | (rec (cdr in) (cons rep out)) 64 | (rec (cdr in) (cons curr out)))))))) 65 | 66 | (define-syntax (replace-aux-keywords stx) 67 | (syntax-case stx () 68 | ((_ op k (a) . in) 69 | (raise (make-message-condition "missing auxiliary keyword translation"))) 70 | ((_ op k (o0 t0 o1 t1 ...) . in) 71 | (with-syntax ((tin (datum->syntax #'k (replace 72 | (syntax->datum #'t0) 73 | (syntax->datum #'o0) 74 | (syntax->datum #'in))))) 75 | #'(replace-aux-keywords op k (o1 t1 ...) . tin))) 76 | ((_ op k (o t) . in) 77 | (with-syntax ((form (datum->syntax #'k (cons (syntax->datum #'op) 78 | (replace 79 | (syntax->datum #'t) 80 | (syntax->datum #'o) 81 | (syntax->datum #'in)))))) 82 | #'form)))) 83 | 84 | (define-syntax (translate-syntax-name stx) 85 | (syntax-case stx () 86 | ((_ original-name translated-name) 87 | (not (bound-identifier=? #'original-name #'translated-name)) 88 | #'(define-syntax translated-name 89 | (syntax-rules () 90 | ((_ arg (... ...)) 91 | (original-name arg (... ...)))))) 92 | ((_ original-name translated-name) 93 | #''()) 94 | ((_ original-name translated-name aux-keyword-translations) 95 | (not (bound-identifier=? #'original-name #'translated-name)) 96 | #`(define-syntax (translated-name stx) 97 | (syntax-case stx () 98 | ((k arg (... ...)) 99 | #'(replace-aux-keywords original-name 100 | k 101 | (#,@#'aux-keyword-translations) 102 | arg (... ...)))))) 103 | ((_ original-name translated-name aux-keyword-translations) 104 | #''()))) 105 | 106 | (define-grouping-expression translate-syntax-names translate-syntax-name) 107 | -------------------------------------------------------------------------------- /template.scm: -------------------------------------------------------------------------------- 1 | ;;; Copyright 2020 Metaphorm Solutions, Inc. 2 | ;;; 3 | ;;; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ;;; you may not use this file except in compliance with the License. 5 | ;;; You may obtain a copy of the License at 6 | ;;; 7 | ;;; http://www.apache.org/licenses/LICENSE-2.0 8 | ;;; 9 | ;;; Unless required by applicable law or agreed to in writing, software 10 | ;;; distributed under the License is distributed on an "AS IS" BASIS, 11 | ;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ;;; See the License for the specific language governing permissions and 13 | ;;; limitations under the License. 14 | 15 | ;;; Scheme (R6RS) Translation Template 16 | ;;; Use this file as a starting point for translations to your language. 17 | ;;; Simply replace each todo with a translation of the identifier to its left. 18 | 19 | (load "international.scm") 20 | 21 | (translate-syntax-names 22 | and todo 23 | assert todo 24 | begin todo 25 | buffer-mode todo 26 | buffer-mode? todo 27 | case todo (else todo) 28 | case-lambda todo 29 | cond todo (else todo) 30 | define todo 31 | define-condition-type todo 32 | define-enumeration todo 33 | define-record-type todo (fields todo 34 | mutable todo 35 | immutable todo 36 | parent todo 37 | protocol todo 38 | sealed todo 39 | opaque todo 40 | nongenerative todo 41 | parent-rtd todo) 42 | define-syntax todo 43 | delay todo 44 | do todo 45 | endianness todo 46 | eol-style todo 47 | error-handling-mode todo 48 | file-options todo 49 | guard todo (else todo) 50 | identifier-syntax todo 51 | if todo 52 | lambda todo 53 | let todo 54 | let* todo 55 | let*-values todo 56 | let-syntax todo 57 | let-values todo 58 | letrec todo 59 | letrec* todo 60 | letrec-syntax todo 61 | library todo (and todo 62 | or todo 63 | not todo 64 | import todo 65 | for todo 66 | run todo 67 | expand todo 68 | meta todo 69 | only todo 70 | except todo 71 | prefix todo 72 | rename todo 73 | export todo 74 | rename todo) 75 | or todo 76 | quasiquote todo (unquote todo 77 | unquote-splicing todo) 78 | quasisyntax todo 79 | quote todo 80 | record-constructor-descriptor todo 81 | record-type-descriptor todo 82 | set! todo 83 | syntax todo 84 | syntax-case todo 85 | syntax-rules todo 86 | unless todo 87 | unsyntax todo 88 | unsyntax-splicing todo 89 | when todo 90 | with-syntax todo) 91 | 92 | (translate-procedure-names 93 | * todo 94 | + todo 95 | - todo 96 | / todo 97 | < todo 98 | <= todo 99 | = todo 100 | > todo 101 | >= todo 102 | abs todo 103 | acos todo 104 | angle todo 105 | append todo 106 | apply todo 107 | asin todo 108 | assertion-violation todo 109 | assertion-violation? todo 110 | assoc todo 111 | assp todo 112 | assq todo 113 | assv todo 114 | atan todo 115 | binary-port? todo 116 | bitwise-and todo 117 | bitwise-arithmetic-shift todo 118 | bitwise-arithmetic-shift-left todo 119 | bitwise-arithmetic-shift-right todo 120 | bitwise-bit-count todo 121 | bitwise-bit-field todo 122 | bitwise-bit-set? todo 123 | bitwise-copy-bit todo 124 | bitwise-copy-bit-field todo 125 | bitwise-first-bit-set todo 126 | bitwise-if todo 127 | bitwise-ior todo 128 | bitwise-length todo 129 | bitwise-not todo 130 | bitwise-reverse-bit-field todo 131 | bitwise-rotate-bit-field todo 132 | bitwise-xor todo 133 | boolean=? todo 134 | boolean? todo 135 | bound-identifier=? todo 136 | bytevector->sint-list todo 137 | bytevector->string todo 138 | bytevector->u8-list todo 139 | bytevector->uint-list todo 140 | bytevector-copy todo 141 | bytevector-copy! todo 142 | bytevector-fill! todo 143 | bytevector-ieee-double-native-ref todo 144 | bytevector-ieee-double-native-set! todo 145 | bytevector-ieee-double-ref todo 146 | bytevector-ieee-double-set! todo 147 | bytevector-ieee-single-native-ref todo 148 | bytevector-ieee-single-native-set! todo 149 | bytevector-ieee-single-ref todo 150 | bytevector-ieee-single-set! todo 151 | bytevector-length todo 152 | bytevector-s16-native-ref todo 153 | bytevector-s16-native-set! todo 154 | bytevector-s16-ref todo 155 | bytevector-s16-set! todo 156 | bytevector-s32-native-ref todo 157 | bytevector-s32-native-set! todo 158 | bytevector-s32-ref todo 159 | bytevector-s32-set! todo 160 | bytevector-s64-native-ref todo 161 | bytevector-s64-native-set! todo 162 | bytevector-s64-ref todo 163 | bytevector-s64-set! todo 164 | bytevector-s8-ref todo 165 | bytevector-s8-set! todo 166 | bytevector-sint-ref todo 167 | bytevector-sint-set! todo 168 | bytevector-u16-native-ref todo 169 | bytevector-u16-native-set! todo 170 | bytevector-u16-ref todo 171 | bytevector-u16-set! todo 172 | bytevector-u32-native-ref todo 173 | bytevector-u32-native-set! todo 174 | bytevector-u32-ref todo 175 | bytevector-u32-set! todo 176 | bytevector-u64-native-ref todo 177 | bytevector-u64-native-set! todo 178 | bytevector-u64-ref todo 179 | bytevector-u64-set! todo 180 | bytevector-u8-ref todo 181 | bytevector-u8-set! todo 182 | bytevector-uint-ref todo 183 | bytevector-uint-set! todo 184 | bytevector=? todo 185 | bytevector? todo 186 | caaaar todo 187 | caaadr todo 188 | caaar todo 189 | caadar todo 190 | caaddr todo 191 | caadr todo 192 | caar todo 193 | cadaar todo 194 | cadadr todo 195 | cadar todo 196 | caddar todo 197 | cadddr todo 198 | caddr todo 199 | cadr todo 200 | call-with-bytevector-output-port todo 201 | call-with-current-continuation todo 202 | call-with-input-file todo 203 | call-with-output-file todo 204 | call-with-port todo 205 | call-with-string-output-port todo 206 | call-with-values todo 207 | call/cc todo 208 | car todo 209 | cdaaar todo 210 | cdaadr todo 211 | cdaar todo 212 | cdadar todo 213 | cdaddr todo 214 | cdadr todo 215 | cdar todo 216 | cddaar todo 217 | cddadr todo 218 | cddar todo 219 | cdddar todo 220 | cddddr todo 221 | cdddr todo 222 | cddr todo 223 | cdr todo 224 | ceiling todo 225 | char->integer todo 226 | char-alphabetic? todo 227 | char-ci<=? todo 228 | char-ci=? todo 231 | char-ci>? todo 232 | char-downcase todo 233 | char-foldcase todo 234 | char-general-category todo 235 | char-lower-case? todo 236 | char-numeric? todo 237 | char-title-case? todo 238 | char-titlecase todo 239 | char-upcase todo 240 | char-upper-case? todo 241 | char-whitespace? todo 242 | char<=? todo 243 | char=? todo 246 | char>? todo 247 | char? todo 248 | close-input-port todo 249 | close-output-port todo 250 | close-port todo 251 | command-line todo 252 | complex? todo 253 | condition todo 254 | condition-accessor todo 255 | condition-irritants todo 256 | condition-message todo 257 | condition-predicate todo 258 | condition-who todo 259 | condition? todo 260 | cons todo 261 | cons* todo 262 | cos todo 263 | current-error-port todo 264 | current-input-port todo 265 | current-output-port todo 266 | datum->syntax todo 267 | delete-file todo 268 | denominator todo 269 | display todo 270 | div todo 271 | div-and-mod todo 272 | div0 todo 273 | div0-and-mod0 todo 274 | dynamic-wind todo 275 | enum-set->list todo 276 | enum-set-complement todo 277 | enum-set-constructor todo 278 | enum-set-difference todo 279 | enum-set-indexer todo 280 | enum-set-intersection todo 281 | enum-set-member? todo 282 | enum-set-projection todo 283 | enum-set-subset? todo 284 | enum-set-union todo 285 | enum-set-universe todo 286 | enum-set=? todo 287 | environment todo 288 | eof-object todo 289 | eof-object? todo 290 | eq? todo 291 | equal-hash todo 292 | equal? todo 293 | eqv? todo 294 | error todo 295 | error? todo 296 | eval todo 297 | even? todo 298 | exact todo 299 | exact->inexact todo 300 | exact-integer-sqrt todo 301 | exact? todo 302 | exists todo 303 | exit todo 304 | exp todo 305 | expt todo 306 | file-exists? todo 307 | filter todo 308 | find todo 309 | finite? todo 310 | fixnum->flonum todo 311 | fixnum-width todo 312 | fixnum? todo 313 | fl* todo 314 | fl+ todo 315 | fl- todo 316 | fl/ todo 317 | fl<=? todo 318 | fl=? todo 321 | fl>? todo 322 | flabs todo 323 | flacos todo 324 | flasin todo 325 | flatan todo 326 | flceiling todo 327 | flcos todo 328 | fldenominator todo 329 | fldiv todo 330 | fldiv-and-mod todo 331 | fldiv0 todo 332 | fldiv0-and-mod0 todo 333 | fleven? todo 334 | flexp todo 335 | flexpt todo 336 | flfinite? todo 337 | flfloor todo 338 | flinfinite? todo 339 | flinteger? todo 340 | fllog todo 341 | flmax todo 342 | flmin todo 343 | flmod todo 344 | flmod0 todo 345 | flnan? todo 346 | flnegative? todo 347 | flnumerator todo 348 | flodd? todo 349 | flonum? todo 350 | floor todo 351 | flpositive? todo 352 | flround todo 353 | flsin todo 354 | flsqrt todo 355 | fltan todo 356 | fltruncate todo 357 | flush-output-port todo 358 | flzero? todo 359 | fold-left todo 360 | fold-right todo 361 | for-all todo 362 | for-each todo 363 | force todo 364 | free-identifier=? todo 365 | fx* todo 366 | fx*/carry todo 367 | fx+ todo 368 | fx+/carry todo 369 | fx- todo 370 | fx-/carry todo 371 | fx<=? todo 372 | fx=? todo 375 | fx>? todo 376 | fxand todo 377 | fxarithmetic-shift todo 378 | fxarithmetic-shift-left todo 379 | fxarithmetic-shift-right todo 380 | fxbit-count todo 381 | fxbit-field todo 382 | fxbit-set? todo 383 | fxcopy-bit todo 384 | fxcopy-bit-field todo 385 | fxdiv todo 386 | fxdiv-and-mod todo 387 | fxdiv0 todo 388 | fxdiv0-and-mod0 todo 389 | fxeven? todo 390 | fxfirst-bit-set todo 391 | fxif todo 392 | fxior todo 393 | fxlength todo 394 | fxmax todo 395 | fxmin todo 396 | fxmod todo 397 | fxmod0 todo 398 | fxnegative? todo 399 | fxnot todo 400 | fxodd? todo 401 | fxpositive? todo 402 | fxreverse-bit-field todo 403 | fxrotate-bit-field todo 404 | fxxor todo 405 | fxzero? todo 406 | gcd todo 407 | generate-temporaries todo 408 | get-bytevector-all todo 409 | get-bytevector-n todo 410 | get-bytevector-n! todo 411 | get-bytevector-some todo 412 | get-char todo 413 | get-datum todo 414 | get-line todo 415 | get-string-all todo 416 | get-string-n todo 417 | get-string-n! todo 418 | get-u8 todo 419 | greatest-fixnum todo 420 | hashtable-clear! todo 421 | hashtable-contains? todo 422 | hashtable-copy todo 423 | hashtable-delete! todo 424 | hashtable-entries todo 425 | hashtable-equivalence-function todo 426 | hashtable-hash-function todo 427 | hashtable-keys todo 428 | hashtable-mutable? todo 429 | hashtable-ref todo 430 | hashtable-set! todo 431 | hashtable-size todo 432 | hashtable-update! todo 433 | hashtable? todo 434 | i/o-decoding-error? todo 435 | i/o-encoding-error-char todo 436 | i/o-encoding-error? todo 437 | i/o-error-filename todo 438 | i/o-error-port todo 439 | i/o-error-position todo 440 | i/o-error? todo 441 | i/o-file-already-exists-error? todo 442 | i/o-file-does-not-exist-error? todo 443 | i/o-file-is-read-only-error? todo 444 | i/o-file-protection-error? todo 445 | i/o-filename-error? todo 446 | i/o-invalid-position-error? todo 447 | i/o-port-error? todo 448 | i/o-read-error? todo 449 | i/o-write-error? todo 450 | identifier? todo 451 | imag-part todo 452 | implementation-restriction-violation? todo 453 | inexact todo 454 | inexact->exact todo 455 | inexact? todo 456 | infinite? todo 457 | input-port? todo 458 | integer->char todo 459 | integer-valued? todo 460 | integer? todo 461 | irritants-condition? todo 462 | latin-1-codec todo 463 | lcm todo 464 | least-fixnum todo 465 | length todo 466 | lexical-violation? todo 467 | list todo 468 | list->string todo 469 | list->vector todo 470 | list-ref todo 471 | list-sort todo 472 | list-tail todo 473 | list? todo 474 | load todo 475 | log todo 476 | lookahead-char todo 477 | lookahead-u8 todo 478 | magnitude todo 479 | make-assertion-violation todo 480 | make-bytevector todo 481 | make-custom-binary-input-port todo 482 | make-custom-binary-input/output-port todo 483 | make-custom-binary-output-port todo 484 | make-custom-textual-input-port todo 485 | make-custom-textual-input/output-port todo 486 | make-custom-textual-output-port todo 487 | make-enumeration todo 488 | make-eq-hashtable todo 489 | make-eqv-hashtable todo 490 | make-error todo 491 | make-hashtable todo 492 | make-i/o-decoding-error todo 493 | make-i/o-encoding-error todo 494 | make-i/o-error todo 495 | make-i/o-file-already-exists-error todo 496 | make-i/o-file-does-not-exist-error todo 497 | make-i/o-file-is-read-only-error todo 498 | make-i/o-file-protection-error todo 499 | make-i/o-filename-error todo 500 | make-i/o-invalid-position-error todo 501 | make-i/o-port-error todo 502 | make-i/o-read-error todo 503 | make-i/o-write-error todo 504 | make-implementation-restriction-violation todo 505 | make-irritants-condition todo 506 | make-lexical-violation todo 507 | make-message-condition todo 508 | make-no-infinities-violation todo 509 | make-no-nans-violation todo 510 | make-non-continuable-violation todo 511 | make-polar todo 512 | make-record-constructor-descriptor todo 513 | make-record-type-descriptor todo 514 | make-rectangular todo 515 | make-serious-condition todo 516 | make-string todo 517 | make-syntax-violation todo 518 | make-transcoder todo 519 | make-undefined-violation todo 520 | make-variable-transformer todo 521 | make-vector todo 522 | make-violation todo 523 | make-warning todo 524 | make-who-condition todo 525 | map todo 526 | max todo 527 | member todo 528 | memp todo 529 | memq todo 530 | memv todo 531 | message-condition? todo 532 | min todo 533 | mod todo 534 | mod0 todo 535 | modulo todo 536 | nan? todo 537 | native-endianness todo 538 | native-eol-style todo 539 | native-transcoder todo 540 | negative? todo 541 | newline todo 542 | no-infinities-violation? todo 543 | no-nans-violation? todo 544 | non-continuable-violation? todo 545 | not todo 546 | null-environment todo 547 | null? todo 548 | number->string todo 549 | number? todo 550 | numerator todo 551 | odd? todo 552 | open-bytevector-input-port todo 553 | open-bytevector-output-port todo 554 | open-file-input-port todo 555 | open-file-input/output-port todo 556 | open-file-output-port todo 557 | open-input-file todo 558 | open-output-file todo 559 | open-string-input-port todo 560 | open-string-output-port todo 561 | output-port-buffer-mode todo 562 | output-port? todo 563 | pair? todo 564 | partition todo 565 | peek-char todo 566 | port-eof? todo 567 | port-has-port-position? todo 568 | port-has-set-port-position!? todo 569 | port-position todo 570 | port-transcoder todo 571 | port? todo 572 | positive? todo 573 | procedure? todo 574 | put-bytevector todo 575 | put-char todo 576 | put-datum todo 577 | put-string todo 578 | put-u8 todo 579 | quotient todo 580 | raise todo 581 | raise-continuable todo 582 | rational-valued? todo 583 | rational? todo 584 | rationalize todo 585 | read todo 586 | read-char todo 587 | real->flonum todo 588 | real-part todo 589 | real-valued? todo 590 | real? todo 591 | record-accessor todo 592 | record-constructor todo 593 | record-field-mutable? todo 594 | record-mutator todo 595 | record-predicate todo 596 | record-rtd todo 597 | record-type-descriptor? todo 598 | record-type-field-names todo 599 | record-type-generative? todo 600 | record-type-name todo 601 | record-type-opaque? todo 602 | record-type-parent todo 603 | record-type-sealed? todo 604 | record-type-uid todo 605 | record? todo 606 | remainder todo 607 | remove todo 608 | remp todo 609 | remq todo 610 | remv todo 611 | reverse todo 612 | round todo 613 | scheme-report-environment todo 614 | serious-condition? todo 615 | set-car! todo 616 | set-cdr! todo 617 | set-port-position! todo 618 | simple-conditions todo 619 | sin todo 620 | sint-list->bytevector todo 621 | sqrt todo 622 | standard-error-port todo 623 | standard-input-port todo 624 | standard-output-port todo 625 | string todo 626 | string->bytevector todo 627 | string->list todo 628 | string->number todo 629 | string->symbol todo 630 | string->utf16 todo 631 | string->utf32 todo 632 | string->utf8 todo 633 | string-append todo 634 | string-ci-hash todo 635 | string-ci<=? todo 636 | string-ci=? todo 639 | string-ci>? todo 640 | string-copy todo 641 | string-downcase todo 642 | string-fill! todo 643 | string-foldcase todo 644 | string-for-each todo 645 | string-hash todo 646 | string-length todo 647 | string-normalize-nfc todo 648 | string-normalize-nfd todo 649 | string-normalize-nfkc todo 650 | string-normalize-nfkd todo 651 | string-ref todo 652 | string-set! todo 653 | string-titlecase todo 654 | string-upcase todo 655 | string<=? todo 656 | string=? todo 659 | string>? todo 660 | string? todo 661 | substring todo 662 | symbol->string todo 663 | symbol-hash todo 664 | symbol=? todo 665 | symbol? todo 666 | syntax->datum todo 667 | syntax-violation todo 668 | syntax-violation-form todo 669 | syntax-violation-subform todo 670 | syntax-violation? todo 671 | tan todo 672 | textual-port? todo 673 | transcoded-port todo 674 | transcoder-codec todo 675 | transcoder-eol-style todo 676 | transcoder-error-handling-mode todo 677 | truncate todo 678 | u8-list->bytevector todo 679 | uint-list->bytevector todo 680 | undefined-violation? todo 681 | utf-16-codec todo 682 | utf-8-codec todo 683 | utf16->string todo 684 | utf32->string todo 685 | utf8->string todo 686 | values todo 687 | vector todo 688 | vector->list todo 689 | vector-fill! todo 690 | vector-for-each todo 691 | vector-length todo 692 | vector-map todo 693 | vector-ref todo 694 | vector-set! todo 695 | vector-sort todo 696 | vector-sort! todo 697 | vector? todo 698 | violation? todo 699 | warning? todo 700 | who-condition? todo 701 | with-exception-handler todo 702 | with-input-from-file todo 703 | with-output-to-file todo 704 | write todo 705 | write-char todo 706 | zero? todo) 707 | --------------------------------------------------------------------------------