Ключевые слова (или зарезервированные слова) в Julia 1.0 - PullRequest
0 голосов
/ 15 сентября 2018

Как получить информацию о ключевом слове для запускаемой версии Julia?

Например, в Python 3.6 есть 33 ключевых слова, а в 2.7 только 31:

# This is Python 3.6 code running in a file:
import keyword
print(len(keyword.kwlist))
## Output: 33

# This is Python 2.7 code running in a file:
import keyword
print len(keyword.kwlist)
## Output: 31

Можеттакую ​​проверку нужно сделать в джулии?Или у кого-то есть другое предложение для получения информации о ключевых словах Джулии для работающей версии?

РЕДАКТИРОВАТЬ:

Благодаря ответам ниже я получил несколько интересных предложений.Однако чего-то не хватает.Например, в каждом списке зарезервированных слов, представленном ниже, слово elseif отсутствует.Должен ли я верить, что elseif не является ключевым словом (или зарезервированным словом)?

Кроме того, когда я иду к коду Схемы, откуда приходят intial-reserved-words и reserved-words, я нахожу следующий код:

(define initial-reserved-words '(begin while if for try return break continue
                         function macro quote let local global const do
                         struct
                         module baremodule using import export))

(define initial-reserved-word? (Set initial-reserved-words))

(define reserved-words (append initial-reserved-words '(end else catch finally true false))) ;; todo: make this more complete

В конце последней строки выше находитсякомментарий:

;; todo: make this more complete

Кажется, это означает, что даже объединение списков intial-reserved-words и reserved-words (или как они называются в Схеме) не является полным.

Таким образом,Я задержался на проверке одного из ответов.Я буду рад проверить один, когда увижу, как получить канонический список зарезервированных слов Джулии в коде Джулии.Если эксперт Юлии считает, что одно из приведенных ниже предложений является лучшим способом получить список ключевых слов (зарезервированных слов) для текущей версии Юлии, я был бы признателен, если бы знал это.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Не совсем в Джулии, но, возможно, то, что вы ищете. В командной строке, набрав julia --lisp, вы попадете в интерпретатор Lisp, который Джулия использует для синтаксического анализа, в котором вы можете увидеть список обращенных слов, оценив reserved-words (и многие другие, например operators).

> julia --lisp
;  _
; |_ _ _ |_ _ |  . _ _
; | (-||||_(_)|__|_)|_)
;-------------------|----------------------------------------------------------

> reserved-words
(begin while if for try return break continue function macro quote let local
 global const do struct type immutable importall module baremodule using import
 export end else catch finally true false)
0 голосов
/ 15 сентября 2018

Алло,

Есть несколько ключевых слов, их можно найти в документации Julia .

  • Если вы посмотрите на репозиторий Julia на github, есть значение initial-reserved-words, содержащее все ключевые слова. Вы можете получить к нему доступ из командной строки:
$ julia --lisp
;  _
; |_ _ _ |_ _ |  . _ _
; | (-||||_(_)|__|_)|_)
;-------------------|-------------------------------------------------------

> initial-reserved-words
(begin while if for try return break continue function macro quote let local
 global const do struct module baremodule using import export)
  • Или вы можете создать массив самостоятельно:
keywords = ("begin","while","if","for","try","return","break","continue","function","macro",
            "quote","let","local","global","const","do","struct","module","baremodule",
            "using","import","export")

print(length(keywords)) # 22

Если вы новичок в Джулии, я рекомендую вам взглянуть на:

Это куча примеров, поэтому вы можете экспериментировать на языке. Надеюсь, это поможет;)

...