diff --git "a/data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/3.\346\240\207\345\277\227\347\254\246/exercise_03.md" "b/data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/3.\346\240\207\345\277\227\347\254\246/exercise_03.md" index 2b7bd16d6902ee8d699ff391753597a492972552..7b4fab60c05bd479d8bfd84ac13c626040fa1d9e 100644 --- "a/data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/3.\346\240\207\345\277\227\347\254\246/exercise_03.md" +++ "b/data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/3.\346\240\207\345\277\227\347\254\246/exercise_03.md" @@ -1,6 +1,6 @@ # 标志符 -Scheme对标识符的宽容度远大于其他语言,你甚至可以在标识符里使用数学符号+-*/><,但仍有一些符号严格禁止使用在标志符里。 +Scheme对标识符的宽容度远大于其他语言,你可以在标识符里使用大多数符号,可以重写所有的系统预留关键字,但仍有一些符号严格禁止使用在标志符里。 在Scheme里它们大多数是预留的读取器宏。 @@ -34,4 +34,26 @@ Scheme对标识符的宽容度远大于其他语言,你甚至可以在标识 ``` 读取器宏,`,@object`将在编译前被替换成`(unquote-splicing object)`。 -在Scheme规定中`@`只是不能出现在标致符的开头。但实际使用中,含`@`的标志符会导致太多问题。比如,在标志符尾部的`@`有可能影响读取器对右括号的读取。所以这里尽量建议不要在标志符中使用`@`。 \ No newline at end of file +在Scheme规定中`@`只是不能出现在标致符的开头。但实际使用中,含`@`的标志符会导致太多问题。比如,在标志符尾部的`@`有可能影响读取器对右括号的读取。所以这里尽量建议不要在标志符中使用`@`。 + + +``` +. +``` +`.`在scheme程序中起到表示"对"的作用。比如(a . b)。它不能使用在标识符的开头。 + +``` ++ +- +``` +`+`和`-`因为需要表示数学格式,所以不能出现在标志符的开头。 + +*特例* + +``` +-> +``` +`->`组合在标志符开头是合法的。 + + +> 可以使用在标识符里的字符有:`? ! . + - * / < = > : $ % ^ & _ ~`。 \ No newline at end of file diff --git "a/data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/4.\345\256\232\344\271\211/exercise_04.md" "b/data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/4.\345\256\232\344\271\211define/exercise_04.md" similarity index 100% rename from "data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/4.\345\256\232\344\271\211/exercise_04.md" rename to "data/1.Scheme\345\210\235\351\230\266/1.Scheme\345\205\245\351\227\250/4.\345\256\232\344\271\211define/exercise_04.md"