Я пытаюсь запустить Clojure на CLR и зацикливаюсь на некоторых основных проблемах.Исходя из этого вопроса Я использую следующий код:
В program.clj:
(ns program
(:require [clojure.core])
(:gen-class
:methods [#^{:static true} [output [int int] int]]))
(defn output [a b]
(+ a b))
(defn -output [a b]
(output a b))
(defn -main []
(println (str "(+ 5 10): " (output 5 10))))
Затем в Program.cs:
using System;
using clojure.lang;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
program p = new program();
System.Console.WriteLine(p.output(5, 9));
System.Console.ReadLine();
}
}
}
Когда я запускаю Program.cs, он выдает ошибку TypeInitializationError с сообщением об ошибке «Не удалось найти clojure / core.clj.dll или clojure / core.clj на пути загрузки».Для отладки я добавил строки:
System.Environment.SetEnvironmentVariable("clojure.load.path", "c:\clojure");
System.Console.WriteLine(System.Environment.GetEnvironmentVariable("clojure.load.path"));
System.Console.WriteLine(RT.CLOJURE_LOAD_PATH);
Первый WriteLine показывает «c: \ clojure», как я и ожидал.Второй показывает «clojure.load.path».Насколько я понимаю, среда выполнения искала переменные среды для пути загрузки.Так почему же его не найти?Как еще можно установить путь загрузки?