Я думаю, что стоит понять, что apply
полезно для Racket или других Lisp-1. Почти во всех кодах полезно, когда у вас есть функция и множество аргументов, но вы не знаете, сколько их есть, и вы хотите вызвать функцию с этими аргументами. На практике это означает:
Если вы знаете, сколько аргументов у вас есть, почти никогда не будет причины использовать apply
, если аргументы уже список, и вы не хотите его извлекать: (apply cons l)
может быть проще, чем (cons (first l) (second l))
.
В частности, если вы пытаетесь вызвать функцию с одним аргументом, который вы знаете, тогда apply
определенно не то, что вы хотите. И аналогично, это не то, что вы хотите, если «функция» - это макрос.
В Lisp-2 есть дополнительное использование для apply
: вызов функции, которая является значением a переменная. Это необходимо, потому что, как глупый пример, (let ((x (lambda (...) ...))) ... (x ...) ...)
не будет работать в Lisp-2. Lisp-2s имеют дополнительную функцию funcall
, которая делает то, что делает apply
, когда вы знаете количество аргументов: вам не нужно funcall
в Lisp-1.
Случаи, когда eval
полезны, еще реже. Есть некоторые, но почти все время это, в лучшем случае, путаница и, в худшем случае, страшная проблема безопасности: что делает
(define (terror x) (eval `(list x)))
Do, когда он называется? Ответ: что-нибудь вообще, что язык способен делать : (terror '(launch-the-nukes))
, скажем.
Похоже, что Chrome отправляет дополнительные заголовки, которые отсутствуют в Explorer
из Chrome Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
из Explorer 11:
Accept: text/html, application/xhtml+xml, image/jxr, */*
и кодировка отличается в заголовках запроса, так как chorme имеет: gzip, deflate, br , где в IE отсутствует кодировка br.
Это то, что я могу быстро увидеть с первого взгляда. Если у вас есть доступ к журналам, это внутренний 500, так что если вы можете пройти и увидеть исключение на сервере, которое даст вам лучший ответ
Редактировать : обязательно добавьте Запрос заголовки принимают application/xml
, поскольку это XML-документ, который возвращается.