Clojure, представляющий массив байтов

Для любых эхо-операторов я всегда использую <br> внутри двойных кавычек.

11
задан Hamza Yerlikaya 27 June 2009 в 04:35
поделиться

2 ответа

Если файл, о котором идет речь, очень большой, вам всегда следует использовать файл с отображением в память. clojure.contrib.mmap предлагает некоторые функции для решения этой проблемы.

Я знаю, что могу создать массив из clojure, но как с этим справиться с помощью lisp?

Я не знаю о Способ Lisp, но способ Clojure позволяет вам использовать функции последовательности в массивах, поэтому вам не нужно выбирать между эффективным представлением и удобной обработкой (что, на мой взгляд, является одним из моментов, которые делают Clojure настолько прагматичным).

11
ответ дан 3 December 2019 в 08:31
поделиться

это ленивая последовательность байтов в файле, закрывающая дескриптор файла, когда последний байт был прочитан. Если вы работаете с последовательностями, загружаемыми из огромных файлов, будьте осторожны, чтобы нигде не удерживать заголовок последовательности, иначе у вас закончится память. Можно удерживать дескриптор файла, если вам нужно вручную закрыть его в состоянии ошибки.

(defn byte-seq [rdr]
  (let [result (. rdr read)]
    (if (= result -1)
      (do (. rdr close) nil)
      (lazy-seq (cons result (byte-seq rdr))))))
3
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: