← Архив: Common Lisp

что значит двоеточие в имени устройства?

Author: · 27.02.2016 16:58
· original author: dima0905
ANTENNA> (make-pathname :host "" :device "c:" :directory *home-dir-on-ssd :name "HISTORY" :type "dat")
#P"//c:/Users/user/.antenna/HISTORY.dat"
ANTENNA> (make-pathname :host "" :device "c" :directory *home-dir-on-ssd :name "HISTORY" :type "dat")
#P"c:/Users/user/.antenna/HISTORY.dat"
· original author: archimag
http://lisper.ru/pcl/functions#Именованные параметры
· original author: dima0905
ANTENNA> (make-pathname :device "a")
#P"a:"
ANTENNA> (make-pathname :device "a:")
#P"//a:"
· original author: den73
Зачем тебе это? Я никогда в жизни не пользовался "device", хотя приходилось делать что-то более-менее кроссплатформенное. Есть преобразование в строки и обратно, есть нативные неймстринги в реализациях лиспа, есть cl-fad и сейчас ещё есть uiop (часть asdf), который вроде бы как в чём-то лучше продуман.
· original author: dima0905
Так это фича или бага?
· original author: archimag
> Так это фича или бага?
В момент разработки стандарта как будут развиваться файловый системы не было ещё ясно и в стандарт были заложены "фичи", которые оказались совершенно невостребованными. Смысл многих "фич" при работе с pathname может быть понят только в историческом контексте, а сами эти "фичи" в современных условиях не имеют никакого практического смысла.