каково различие между командой и оператором

Я думаю, что это зависит от сколько разделения, там между точками и кластерами. Если расстояния являются большими и неправильными, я был бы первоначально треугольный точки, и затем удалите/скройте все треугольники со статистически большими граничными длинами. Остающиеся подтриангуляции формируют кластеры произвольной формы. Пересечение краев этих подтриангуляций приводит к полигонам, которые могут использоваться для определения, какие отдельные моменты лежат в каждом кластере. Полигоны могут также сравниться, знают формы, такие как торус Kent Fredric, как требуется.

IMO, методы сетки хороши для быстрых и грязных решений, но очень проголодались очень быстро на редких данных. Деревья квадрантов лучше, но БАНКИ являются моим любимым для больше сложного анализа.

5
задан George Jempty 19 May 2016 в 16:08
поделиться

5 ответов

Традиционно в Tcl фраза «все является командой» означает, что не существует такой вещи, как команда «зарезервированного слова» или такой вещи, которая определяется системой, которую вы не можете менять. Каждый исполняемый фрагмент кода Tcl имеет формат:

command ?arg1? ... ?argN?

Не существует такой вещи, как команда, которая является частью синтаксиса и не может быть перезаписана (например, "if" и другие управляющие структуры в большинстве языков). Вполне возможно переопределить команду «if», чтобы сделать что-то немного другое.

Например, вы можете переопределить «while» как:

proc while {expression body} {
    for {} {[uplevel 1 expr $expression]} {} {
        uplevel 1 $body
    }
}

Приведенный выше код не тестируется ... но он показывает общую идею.

7
ответ дан 13 December 2019 в 19:30
поделиться

Команда - это то, что другие языки называют функцией, подпрограммой или зарезервированным словом, и может быть определено командой "proc" или в C или что угодно. Заявление - это вызов команды. Используя традиционные определения, оператор в Tcl - это команда, за которой следует ноль или более аргументов.

Рассмотрим следующий код:

1   proc hello {string} {
2      puts "hello, $string"
3   }
4   hello "world"

Строка 1 определяет команду с именем «hello», строка 4 - это оператор, вызывающий команду «hello».

Действительно, в некоторых статьях по Tcl используется термин «команда» означать как имя команды, так и вызов команды. Я бы не стал слишком зацикливаться на этом. Думайте об утверждениях как о вызове команды, и все будет в порядке.

Когда вы видите фразу «все является командой», это означает, что нет зарезервированных слов. Вещи, которые выглядят как синтаксис языка или ключевые слова - if, return, exit, break, while и так далее ... - все это команды. Со всеми ними можно обращаться одинаково: их можно переименовывать, удалять, повторно внедрять и т. Д.

3
ответ дан 13 December 2019 в 19:30
поделиться

Я бы сказал, что команда - это то, что вы выполняете в операторе; разные операторы могут выполнять одну и ту же команду (обычно с разными аргументами). Команда - это операция; оператор - это конкретный вызов операции.

1
ответ дан 13 December 2019 в 19:30
поделиться

Я бы подумал, что команда - это инструкция в коде, и оператор может запускать несколько команд, но в конце оценивается как истинное или ложное.

-1
ответ дан 13 December 2019 в 19:30
поделиться

Думаю, это в основном вопрос семантики, поэтому могут быть некоторые различия в понимании этих концепций. Тем не менее, эта статья в Википедии предоставляет некоторые рекомендации, которые соответствуют моей интуиции по этой теме.

Оператор - это единица императивной программы. В частности, это модуль, который завершается указателем конца оператора. В C это точка с запятой. Или, в Паскале и его потомках, это единицы, разделенные разделителем операторов. Я думаю, что в большинстве разновидностей Паскаля это также точка с запятой.

Команда - это действие, такое как вызов функции или ключевое слово, которое выполняет действие. В статье Википедии их сравнивают с глаголами, и я думаю, что это хорошее описание.

Итак, объявление переменной - это утверждение, но, вероятно, не команда. И присвоение переменной с помощью оператора присваивания может считаться командой одними, но не другими. Иногда можно услышать, что это называется командой назначения, но не часто. Если это выглядит как вызов функции, как в TCL, то это больше похоже на команду, поскольку есть явный глагол set .

Кроме того, операторы могут состоять из нескольких команд. Например, подумайте о нескольких вызовах функций в C, объединенных запятыми. Я бы рассмотрел этот один оператор, поскольку он имеет одну точку с запятой и возвращает одно значение. Однако каждый из отдельных вызовов можно рассматривать как команду.

Еще одна вещь, которую следует иметь в виду при рассмотрении терминологии операторов / команд, заключается в том, что операторы обычно относятся к императивным программам, тогда как команды обычно относятся к оболочкам и сценариям. Итак, при использовании командной оболочки, такой как bash, говорят о командах. Если я пишу сценарий bash, то он обычно рассматривается как сценарий команд, а не программа операторов, хотя разница в основном академическая.

TCL, как один из первых языков сценариев, вероятно, хотел нарисовать различие между собой как интерпретируемым языком сценариев, работающим в оболочке (желание), и компилируемыми языками, такими как C и Pascal. Perl, например, получивший популярность несколько позже, обычно не оговаривается.

Тем не менее, вы все еще часто слышите, как люди ссылаются на Perl-скрипты, а не на Perl-программы, а также на TCL.

I опасаюсь, что мой ответ, возможно, не помог прояснить различие, но я надеюсь, что это поможет.

а не программа операторов, хотя разница в основном академическая.

TCL, как один из первых языков сценариев, вероятно, хотел провести различие между собой как интерпретируемым языком сценариев, работающим в оболочке (желание), и скомпилированные языки, такие как C и Pascal. Например, Perl, который приобрел популярность несколько позже, обычно не оговаривается.

Тем не менее, вы все еще часто слышите, как люди ссылаются на сценарии Perl, а не на программы Perl, а также на TCL.

I опасаюсь, что мой ответ, возможно, не помог прояснить различие, но я надеюсь, что это поможет.

а не программа операторов, хотя разница в основном академическая.

TCL, как один из первых языков сценариев, вероятно, хотел провести различие между собой как интерпретируемым языком сценариев, работающим в оболочке (желание), и скомпилированные языки, такие как C и Pascal. Perl, например, получивший популярность несколько позже, обычно не оговаривается.

Тем не менее, вы все еще часто слышите, как люди ссылаются на Perl-скрипты, а не на Perl-программы, а также на TCL.

I опасаюсь, что мой ответ, возможно, не помог прояснить различие, но я надеюсь, что это поможет.

по сравнению с компилируемыми языками, такими как C и Pascal. Perl, например, получивший популярность несколько позже, обычно не оговаривается.

Тем не менее, вы все еще часто слышите, как люди ссылаются на Perl-скрипты, а не на Perl-программы, а также на TCL.

I опасаюсь, что мой ответ, возможно, не помог прояснить различие, но я надеюсь, что это поможет.

по сравнению с компилируемыми языками, такими как C и Pascal. Например, Perl, который приобрел популярность несколько позже, обычно не оговаривается.

Тем не менее, вы все еще часто слышите, как люди ссылаются на сценарии Perl, а не на программы Perl, а также на TCL.

I опасаюсь, что мой ответ, возможно, не помог прояснить различие, но я надеюсь, что это поможет.

1
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: