“Не знайте, как создать ISeq из: Символ” ошибка в Clojure

С C # 4.0 отражение не требуется, поскольку DLR может вызывать его с использованием типов времени выполнения. Так как использование библиотеки DLR представляет собой боль динамически (вместо кода генерации компилятора C # для вас), open source framework Dynamitey (.net standard 1.5) дает вам простой кэшированный доступ во время выполнения те же вызовы, которые генерирует компилятор для вас.

var name = InvokeMemberName.Create;
Dynamic.InvokeMemberAction(this, name("GenericMethod", new[]{myType}));


var staticContext = InvokeContext.CreateStatic;
Dynamic.InvokeMemberAction(staticContext(typeof(Sample)), name("StaticMethod", new[]{myType}));

16
задан Paul Reiners 15 December 2008 в 17:32
поделиться

3 ответа

Проблема состоит в том, что я использую круглые скобки (' (' и')'), а не квадратные скобки (' [' и']'), для списка аргументов.

Это должно начаться как это:

(defn match [x y &optional binds]

(я нашел ответ в Clojure Программирования Stuart Halloway.)

27
ответ дан 30 November 2019 в 15:44
поделиться

Кроме того, конусовидная форма не использует parens для своих пунктов:

(cond
  test1 eval1
  test2 eval2
  :else eval3)
14
ответ дан 30 November 2019 в 15:44
поделиться

Основной ответ был уже дан (аргументы функции находятся в [] не () в clojure) но прежде, чем попытаться смешать с кодом из источников языка Common LISP, я рекомендовал бы на самом деле изучить синтаксис Clojure, поскольку это - Ничто близко к чистому порту CL, вообще. Вы просто собираетесь попасть в беду, рассматривая его как он.

7
ответ дан 30 November 2019 в 15:44
поделиться