Perl 6 делает какие-либо обещания о чередовании порядка, будет использоваться?

Исправление запроса в списке исправлено для меня:

library(shiny)

ui <- fluidPage(
  textInput(inputId = "inquiry", label = "enter text"),
  actionButton(inputId = "searchButton", label = "Run"),
  verbatimTextOutput("queryList", placeholder = FALSE)
)

server <- function(input, output, session) {
  queryList <- reactiveValues()
  queryList$values <- c()

  observeEvent(input$searchButton, {
    queryList$values[length(queryList$values) + 1] <- input$inquiry
  })

  output$queryList <- renderPrint({
    if (!is.null(queryList$values)) {
      queryList$values
    }
  })
}

shinyApp(ui = ui, server = server)
5
задан Elizabeth Mattijsen 27 November 2019 в 19:19
поделиться

2 ответа

S05 говорит

Для этого каждому регулярному выражению в Perl 6 требуется, чтобы иметь возможность различать его «чистые» шаблоны из своих действий и возвращают свой список начальных шаблонов токенов (транзитивно включающий шаблоны токенов любой подправилы, вызываемой «чистой» частью этого регулярного выражения, но не включающий какую-либо подправилу более одного раза, поскольку для этого потребуется Самостоятельная ссылка, которая не допускается в традиционных регулярных выражениях). Логическое чередование с использованием | затем берет два или более из этих списков и отправляет альтернативу, которая соответствует самому длинному префиксу токена. Это может быть или не быть альтернативой, которая появляется в начале лексически.

Однако, если две альтернативы совпадают с одинаковой длиной, связь нарушается в первую очередь из-за специфики. Альтернатива, которая начинается с самой длинной фиксированной строки, выигрывает; то есть точное совпадение считается ближе, чем совпадение, выполненное с использованием классов символов. Если это не работает, связь нарушается одним из двух способов. Если альтернативы представлены в разных грамматиках, стандартный MRO (порядок разрешения методов) определяет, какую из них попробовать в первую очередь. Если альтернативы находятся в одном и том же файле грамматики, текстовая альтернатива имеет приоритет. (Если правила грамматики определены более чем в одном файле, порядок не определен, и для принудительного сбоя необходимо использовать явное утверждение, если сначала выполняется неправильное утверждение.)

Похоже, это обещание сильно отличается от сделанный в Perl 5.

стандартное MRO (порядок разрешения методов) определяет, какой из них попробовать первым. Если альтернативы находятся в одном и том же файле грамматики, текстовая альтернатива имеет приоритет. (Если правила грамматики определены более чем в одном файле, порядок не определен, и для принудительного сбоя необходимо использовать явное утверждение, если сначала выполняется неправильное утверждение.)

Похоже, это обещание сильно отличается от сделанный в Perl 5.

стандартное MRO (порядок разрешения методов) определяет, какой из них попробовать первым. Если альтернативы находятся в одном и том же файле грамматики, текстовая альтернатива имеет приоритет. (Если правила грамматики определены более чем в одном файле, порядок не определен, и для принудительного сбоя необходимо использовать явное утверждение, если сначала выполняется неправильное утверждение.)

Похоже, это обещание сильно отличается от сделанный в Perl 5.

10
ответ дан 18 December 2019 в 06:51
поделиться

Иными словами, альтернативы должны быть сопоставлены (по крайней мере, условно) параллельно, и выигрывает самое длинное совпадение. Если вам нужны последовательные чередования, вы можете использовать двойную черту ||, которая обещает порядок слева направо, как и | делает в Perl 5 регулярных выражений.

13
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

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