标签: quote

(list'quote'5)=''5而不是'(引用5)或'(''5)的值是多少?

似乎Common Lisp确实(list 'quote 'x)以特殊方式对待.例如,的值(list 'oddp '5)'(oddp 5)同时的值(list 'quote '5)''5.换句话说,即使由于前面的引用它应该处于数据模式,似乎也会评估引用函数.

比较以下表达式的值:

    1. (list 'quote '5) = (list 'quote 5) = (quote '5) = ''5
    2. (list '' '5) = '(''5)
    3. (list ' 5) = (list 5) = '(5)
    4. (list 'oddp '5) != (oddp 5)
Run Code Online (Sandbox Code Playgroud)

评估看起来非常特殊.但我估计我可能会很困惑.

有人可以帮助我更好地理解这里的模式吗?

lisp list quote

1
推荐指数
1
解决办法
152
查看次数

是否有针对ruby%{}引用的bash等价物?

引用包含单引号和双引号而没有变量插值的bash命令参数的最简单方法是什么?

在Ruby中,您可以使用%{},%[]等来引用字符串.在这种情况下,单引号和双引号将被视为字符.

我的问题还没有真正完整,这里有进一步的解释:

我问的原因是因为我经常在命令行运行ruby和perl代码.由于这些语言使用广泛的单引号和双引号以及$ 1 $ _等全局变量,因此与bash发生冲突.

例:

ls -lat | ruby -p -e '$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'\''" + ($3 || "") + "'\''" + "\n"'
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似于红宝石中%引用的东西:

ls -lat | ruby -p -e %{$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'" + ($3 || "") + "'" + "\n"}
Run Code Online (Sandbox Code Playgroud)

bash quote

1
推荐指数
1
解决办法
176
查看次数

python如何打印带双引号的字符串列表

我有一个清单,即

my_list = ['a', 'b', 'c', 'd','e','f']
Run Code Online (Sandbox Code Playgroud)

我想以竖线或逗号分隔的格式打印出来,但是因为我的一些列表对象可以有逗号或竖线,所以我想在打印时用双引号将每个对象括起来

即输出应该是

"a"|"b"|"c"|"d"|"e"|"f" rather than a|b|c|d|e|f
Run Code Online (Sandbox Code Playgroud)

我无法在我的 python 版本上使用格式

python printing list delimiter quote

1
推荐指数
1
解决办法
1万
查看次数

Lisp 中的 (list ...) vs '(...)

当我有一个函数定义make-cd并执行该函数以得到错误的答案时。

(defun make-cd (title artist rating ripped)
  '(:title title :artist artist :rating rating :ripped ripped))

(add-record (make-cd "Roses" "Kathy Mattea" 7 t))

(:TITLE TITLE :ARTIST ARTIST :RATING RATING :RIPPED RIPPED)
Run Code Online (Sandbox Code Playgroud)

我本来应该(list ...)得到一个正确的答案。

(defun make-cd (title artist rating ripped)
  (list :title title :artist artist :rating rating :ripped ripped))

(add-record (make-cd "Roses" "Kathy Mattea" 7 t))

(:TITLE "Roses" :ARTIST "Kathy Mattea" :RATING 7 :RIPPED T)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

lisp evaluation list common-lisp quote

1
推荐指数
1
解决办法
553
查看次数

Elixir 中的引用函数名称

我现在正在学习 Elixir,我真的很困惑quoteunquote。以下是我们如何使用 a 创建具有动态名称的函数macro

defmacro create_fun(n) do
  quote do: def unquote(:"times_#{n}")(a), do: a * 4
end
Run Code Online (Sandbox Code Playgroud)

times_6例如,如果我6作为宏参数传递,它会创建 function 。

现在我不明白的是:这里我们取消引用atom :"times_#{n}"。Elixir 文档说,当你引用一个原子时,它会返回一个原子。所以当我取消引用一个原子时,我也应该找回这个原子。这是真的:

iex(15)> Macro.to_string quote do: unquote(:"times_6")
":times_6"
Run Code Online (Sandbox Code Playgroud)

但是()在引用之后使用会给出这样的结果:

iex(14)> Macro.to_string quote do: unquote(:"times_6")()
"times_6()"
Run Code Online (Sandbox Code Playgroud)

带括号的原子突然就不再是原子了。如果我unquote(:"times_6"):"times_6"它代替则不起作用:

iex(4)> Macro.to_string quote do: :"times_6"()
** (SyntaxError) iex:4: syntax error before: '('
Run Code Online (Sandbox Code Playgroud)

请问这是怎么回事,没明白

macros function elixir quote

1
推荐指数
1
解决办法
1022
查看次数

在 Emacs Lisp 中循环字符串会导致类型参数错误

我正在尝试使用 循环遍历字符串列表dolist,并使用前缀字符串连接元素,使用string-joinfromsubr-x创建新字符串。

(dolist (p '("a" "b" "c"))
   (string-join '(p ".rnc")))
Run Code Online (Sandbox Code Playgroud)

我收到错误Wrong type argument: sequencep, p。但是下面的代码可以工作。

(dolist (p '("a" "b" "c"))
   (print p))
Run Code Online (Sandbox Code Playgroud)

所以这似乎是一个循环的问题string-join或等效的mapconcat循环内的问题。有什么建议么?谢谢!

lisp emacs elisp list quote

1
推荐指数
1
解决办法
173
查看次数

java string用单引号替换反斜杠双引号

这让我很生气所以如果可以,请帮助...

我有一个Java字符串,我想用单引号替换所有反斜杠双引号序列,即使我正在逃避我认为必要的替换命令对字符串没有任何作用.

entry.replace("\\\"", "'");
Run Code Online (Sandbox Code Playgroud)

感谢任何建议.

谢谢.

java string replace escaping quote

0
推荐指数
1
解决办法
9103
查看次数

引用Zend Framework 2的价值

我正在使用ZF2开发应用程序.在我的应用程序中,我必须在数据库中插入许多行(大约900).

我有一个表模型,所以我首先尝试:

$table->insert(array('x' => $x, 'y' => $y));
Run Code Online (Sandbox Code Playgroud)

在我的循环中.这在技术上是有效的,但这是如此之慢,以至于我很难在php超时之前插入一半的数据(我无法更改超时).

然后,我决定使用准备好的声明.所以我已经在循环之外准备好了,然后在我的循环中执行它...它甚至更慢.

所以,我决定停止使用ZF2工具,因为它们似乎太慢而无法在我的情况下使用,我已经创建了自己的请求.我正在使用mysql,所以我可以用我的所有值做一个请求.但我无法在任何界面中找到任何方法来逃避我的价值观......

有没有办法做到这一点?

谢谢你的帮助,抱歉我的英语不好.

sql quote zend-framework2

0
推荐指数
1
解决办法
4391
查看次数

PHP:单引号与PDO逃脱

我是PHP和PDO的新手.我有一个关于PDO和单引号转义的非常基本的问题.我认为逃避不是必要的,但我仍然遇到了一些问题.

例如......我的数据库类中的以下方法在数据库中创建一个新对象.它是抽象的,我的所有类都扩展了数据库类.

public function  create() {
    $attributes = $this->attributes();
    $question_marks = array();
    foreach ($attributes as $key => $value) {
        $question_marks[] = "?";
    }
    $place_holder = array_intersect_key($attributes, get_object_vars($this));
    $place_holder = array_values($place_holder);
    $sql = "INSERT INTO ".static::$table_name." (";
    $sql .= join(", ", array_keys($attributes));
    $sql .= ") VALUES (";
    $sql .= join(", ", array_values($question_marks));
    $sql .= ")";
    $query = $handler->prepare($sql);
    $query->execute($place_holder);
}
Run Code Online (Sandbox Code Playgroud)

如果我创建说例如新用户.我可以毫不费力地将James O'Reilly这个名字输入数据库......

但是,当我想使用我的更新方法....

public function update() {
   $attributes = $this->attributes();
   print_r($attributes);
    $attribute_pairs = array();
    foreach($attributes as $key => $value) {
      if(isset($value)) …
Run Code Online (Sandbox Code Playgroud)

pdo escaping quote

0
推荐指数
1
解决办法
2326
查看次数

Common Lisp:如何引用SBCL中的括号

在Common Lisp中,特殊运算符引用使得后面跟未评估的内容一样

(quote a) -> a
(quote {}) -> {}
Run Code Online (Sandbox Code Playgroud)

但为什么表单(quote())给我?我正在使用SBCL 1.2.6,这是我在REPL中得到的:

CL-USER> (quote ())
NIL
Run Code Online (Sandbox Code Playgroud)

关于这个问题的更多信息:这是PCL第24章的一些代码

(defun as-keyword (sym)
  (intern (string sym) :keyword))

(defun slot->defclass-slot (spec)
  (let ((name (first spec)))
    `(,name :initarg ,(as-keyword name) :accessor ,name)))

(defmacro define-binary-class (name slots)
  `(defclass ,name ()
     ,(mapcar #'slot->defclass-slot slots)))
Run Code Online (Sandbox Code Playgroud)

当宏扩展为以下代码时:

(define-binary-class id3-tag
    ((major-version)))
Run Code Online (Sandbox Code Playgroud)

(DEFCLASS ID3-TAG NIL
      ((MAJOR-VERSION :INITARG :MAJOR-VERSION :ACCESSOR MAJOR-VERSION)))
Run Code Online (Sandbox Code Playgroud)

在类名ID3-TAG之后是NIL而不是().

lisp sbcl common-lisp quote

0
推荐指数
1
解决办法
161
查看次数