Описание тега quasiquotes

1 ответ

rxDataStep "преобразовать" аргумент, используя квази-кавычку

Я пытаюсь использовать синтаксис квази-цитата (quo, exprs, !!и т. д.), а также foreach функция для создания нескольких новых переменных с помощью именованного списка выражений, которые будут оцениваться внутри rxDataStep функция, в частности, transf…
24 дек '18 в 17:41
1 ответ

Функция dplyr с необязательной группировкой только при наличии аргумента

Мне нужно написать функцию dplyr, которая создает настраиваемый участок площади. Итак, вот моя попытка. area_plot <- function(data, what, by){ by <- ensym(by) what <- ensym(what) data %>% filter(!is.na(!!by)) %>% group_by(date, !!by) …
16 окт '18 в 12:34
0 ответов

Нелинейные шаблоны в квази-кавычках

Я следовал этому руководству, чтобы реализовать квази-цитируемый DSL, и теперь я хочу поддерживать нелинейные шаблоны в цитируемом шаблоне. Это позволит повторному связыванию в шаблоне утверждать равенство сопоставленных данных. Например, можно напи…
0 ответов

Scala квазиквота unlifting не компилируется в IntelliJ?

Возможно, я делаю что-то не так, но я следую документации здесь, https://docs.scala-lang.org/overviews/quasiquotes/unlifting.html который говорит val q"${left: Int} + ${right: Int}" = q"2 + 2" left: Int = 2 right: Int = 2 Поэтому я пишу такой код, и…
07 ноя '17 в 23:45
1 ответ

Использование квазицитированного аргумента для функции в вызове purrr:map

У меня возникли небольшие проблемы с вычислением квази-цитаты, в частности, у меня есть функция, которая принимает аргумент, который указывает, какая переменная должна входить в модель, которая затем запускается в вызове purrr:: map. Я работал с: ht…
02 ноя '18 в 14:12
2 ответа

Haskell QuasiQuotes Text.RawString.QQ интерполяция

Как я могу интерполировать так: {-# LANGUAGE QuasiQuotes #-} import Text.RawString.QQ myText :: Text -> Text myText myVariable = [r|line one line two line tree ${ myVariable } line five|] myText' :: Text myText' = myText "line four" ${ myVariable…
04 июн '18 в 20:21
1 ответ

Класс expr и exprs различаются в Rlang в R! Зачем?

Я не уверен, если это было задано здесь, но я очень смущен здесь. Я читаю эту удивительную книгу Хэдли Уикхэма под названием Advanced R. Есть функция называетсяcementчто было описано здесь, я немного изменил и пытаюсь понять это. library(rlang) ceme…
25 май '18 в 12:23
1 ответ

Подъемная струна со Скаламетой

Я хотел бы внедрить метод 'toCSV' для анализа класса в CSV String. Моя функция принимает два параметра: Seq [String]: заголовок Seq[Seq[Any]]: поля Мой макрос: class model extends scala.annotation.StaticAnnotation { inline def apply(defn: Any): Any …
2 ответа

Использование rlang::sym внутри определения списка

Я пишу сценарий R, и мне нужно разрешить пользователю указывать имя переменной, которая будет обрабатываться вручную, т.е. var <- 'user_name' Вообще то я имею в виду, что с помощью rlang::sym и механизм цитирования / отмены цитирования. Тем не ме…
29 авг '18 в 13:05
1 ответ

Почему я не могу цитировать это предложение?

Я читаю некоторые заметки о квази-цитате здесь: https://dplyr.tidyverse.org/articles/programming.html. После первого прочтения я попробовал несколько вещей. Одно, в частности, меня смутило: x <- "foo" q <- quo(x) print(x) <quosure> expr:…
12 сен '18 в 01:04
1 ответ

Передайте несколько вызывающих аргументов формальному аргументу в пользовательской функции dplyr без использования "..."

Чтобы сделать настраиваемую функцию гибкой для получения одного или нескольких вызывающих аргументов на формальный аргумент, я в настоящее время полагаюсь на "...": library(dplyr) foo <- function(data, ..., dv){ groups <- enquos(...) dv <- …
05 ноя '18 в 19:12
1 ответ

Передача аргументов в кавычках внутри вложенных функций

Ниже я написал простую функцию snafu() который вычисляет новую переменную snafu_var, library(dplyr) df <- mtcars %>% select(am, cyl) %>% slice(1:5) snafu <- function(data, var1, var2){ require(dplyr) var1 <- enquo(var1) var2 <- enq…
28 авг '18 в 23:23
1 ответ

Передача переменных в функции, которые используют `enquo()`

У меня есть концептуальная проблема. Я хочу передать переменные в функцию, которая превращает некоторые из этих переменных в выражения через enquo (от dplyr / rlang пакеты). Тем не менее, я хочу сделать это с помощью других функций. Рассмотрим следу…
16 окт '18 в 23:30
1 ответ

Нестандартная оценка и квазиквотация в dplyr() работают не так, как ожидалось (наивно)

Я пытаюсь найти в базе данных, а затем пометить выходной файл с именем, полученным из исходного поиска, "derived_name" в воспроизводимом примере ниже. Я использую dplyr труба %>%и у меня возникли проблемы с квази-цитатой и / или нестандартной оце…
0 ответов

Расширьте синтаксический анализатор, чтобы построить квази-квотер для паттернов

Я хотел бы построить квазиквотер для создания шаблонов, которые соответствуют поддеревьям в Java AST, так что вместо BasicFor (Just (ForInitExps init)) (Just cond) (Just inc) body Я могу написать что-то вроде [java|for (#init ; #cond ; #inc) #body|]…
09 фев '19 в 01:33
1 ответ

Как я могу написать шаблон квази-квотер в Haskell?

Я использую квази-кавычки для создания своих умно построенных типов данных во время компиляции. Это выглядит примерно так: import qualified Data.Text as T import Language.Haskell.TH.Quote (QuasiQuoter(..)) import Language.Haskell.TH (Q, Exp, Pat(..)…
21 фев '19 в 02:27
1 ответ

rlang: форма назначения кво, документация, нахождение. Или что-то

Многие примеры страниц справки для quo принимают формы, подобные этой, присваивая вывод quo quo: quo <- quo(letters) quo <- quo(toupper(!! quo)) quo eval_tidy(quo) Кажется очевидным, что эти назначения не перезаписывают функцию кво (поскольку …
1 ответ

Передача пропущенных квази-цитатных аргументов

Я пытаюсь использовать квазиквотацию для передачи необработанного имени переменной в функцию, которая передает его другой функции. Тем не менее, аргумент является необязательным, поэтому мне нужно проверить, была ли 1-й функции задан этот аргумент и…
04 мар '19 в 14:38
1 ответ

Смешанный ввод в квазиквотации с dplyr

Я взял квази-цитату на высший уровень. Я близок к получению своего мастер-квазиквотатора (см. правки ниже). Остался один бит с челленджем. Использование разных входов для создания предложений с помощью dplyr. Конечный результат: the_quote <- quo(…
1 ответ

Haskell аналог обратного цитирования и сплайсинга lisp

В некоторых списках (например, elisp, common lisp) есть функция, называемая обратным цитированием. Позволяет составить список, оценивая или встраивая в него некоторые элементы. Например: `(1 2 (3 (+ 4 5))) ⇒ (1 2 (3 (+ 4 5))) ; just quoted unevaluat…
19 апр '19 в 21:07