Можно также попробовать /etc/redhat-release
или /etc/fedora-release
:
cat /etc/fedora-release
Fedora release 7 (Moonshine)
Каждая функция или вызов макроса возвращает значение в Clojure, даже такие вещи, как операторы if
, конструкции цикла, определения функций верхнего уровня или операторы печати, которые на других языках являются операторами ". В Лиспе нет дихотомии оператор / выражение; все является выражением.
Итак, println
и его друзья выводят на стандартный вывод в качестве побочного эффекта и возвращают nil
, как и большинство функций, для которых нет ничего полезного. return.
Но ввод буквальной строки в REPL должен возвращать саму строку, как в сообщении digitalross .
user> (println "hello world")
hello world
nil
user> "hello world"
"hello world"
user>
В первом случае строка hello world
будет то, что было напечатано в стандартном выводе с помощью println
. nil
- это возвращаемое значение println
. Во втором случае "hello world"
- это возвращаемое значение "hello world"
, поскольку строка оценивается сама по себе. В этом случае ничего не выводится на стандартный вывод.
(SLIME и некоторые другие интерфейсы REPL будут полезно окрашивать стандартный вывод (строка hello world
выше) иначе, чем возвращаемое значение того, что вы ввели в REPL ( nil
выше), иначе это может сбить с толку.)
Это то, что вы должны увидеть на REPL. То, что вы разместили, должно быть артефактом Enclojure.
В этом случае ничего не выводится на стандартный вывод. (SLIME и некоторые другие интерфейсы REPL будут полезно окрашивать стандартный вывод (строка hello world
выше) иначе, чем возвращаемое значение того, что вы набрали в REPL ( nil
выше), иначе это может сбить с толку.)
Это то, что вы должны увидеть на REPL. То, что вы разместили, должно быть артефактом Enclojure.
В этом случае ничего не выводится на стандартный вывод. (SLIME и некоторые другие интерфейсы REPL будут полезно окрашивать стандартный вывод (строка hello world
выше) иначе, чем возвращаемое значение того, что вы набрали в REPL ( nil
выше), иначе это может сбить с толку.)
Это то, что вы должны увидеть на REPL. То, что вы опубликовали, должно быть артефактом Enclojure.
В Clojure 1.0 этого не происходит. 0-
$ java -cp clo*.jar clojure.lang.Repl
Clojure 1.0.0-
user=> "hello, world"
"hello, world"
user=>
Я думаю, это возвращаемое значение вашего выражения. Так обстоит дело с рубином с методом put.
В последнее время есть несколько ошибок, связанных с интерпретацией последовательности конца строки CRLF как двух разных выражений под окнами. Возвращаемое значение строки в clojure должно быть самой строкой.