Discussion:
[Lisp] Någon som gör som Fare och scriptar med lisp?
Per Danielsson
2014-09-01 18:02:01 UTC
Permalink
Den som vill kan ju roa sig med att försöka implementera följande i lisp!
let apa=1; for i in `cat delete.data `; do if [[ $apa -ge 1000 ]]; then printf "$i\n" >>ffile; let apa=1; else printf "$i|" >> ffile; let apa=$apa+1; fi; done
Jag har en jättefin implementation i scsh, men den får tyvärr inte plats här i marginalen!

PD
--
"Martians are people too"
Andreas Davour
2014-09-04 15:03:48 UTC
Permalink
Post by Per Danielsson
Den som vill kan ju roa sig med att försöka implementera följande i lisp!
let apa=1; for i in `cat delete.data `; do if [[ $apa -ge 1000 ]]; then printf "$i\n" >>ffile; let apa=1; else printf "$i|" >> ffile; let apa=$apa+1; fi; done
Jag har en jättefin implementation i scsh, men den får tyvärr inte
plats här i marginalen!
Jag har faktiskt inte tagit mig för utmaningen själv...

-andreas

--
"economics is a pseudoscience; the astrology of our time"
Kim Stanley Robinson
Lars Brinkhoff
2014-11-13 11:25:00 UTC
Permalink
Nu har jag det.

Istället för att göra ett hack i shell, gjorde jag följande för att
konvertera radslut till CRLF i Emacs. Jag vet att det finns unix2dos
och liknande, men jag ville ha lite mer kontroll på hantering av
binära filer m m.

(defun map-files (fn dir)
"Apply function FN to all files in DIR, including subdirectories.
The function is called with a file loaded into a buffer, which is saved
when the function returns. Doesn't descend into the .hg subdirectory."
(dolist (i (directory-files dir t))
(unless (member (file-name-nondirectory i) '("." ".." ".hg"))
(if (file-directory-p i)
(map-files fn i)
(with-current-buffer (find-file-noselect i)
(funcall fn)
(when (buffer-modified-p)
(save-buffer))
(kill-buffer))))))

(defun set-buffer-crlf ()
(when (eql (coding-system-eol-type buffer-file-coding-system) 0)
(let ((coding (coding-system-change-eol-conversion
buffer-file-coding-system 1)))
(when coding
(set-buffer-file-coding-system coding)))))

(defun convert-to-crlf ()
"Convert all files to CRLF line endings."
(map-files #'set-buffer-crlf "/foo/bar/baz"))
Mathias Dahl
2014-11-18 19:25:45 UTC
Permalink
Jag har en massa elisp-hack för liknande uppgifter jag gör på jobbet. Emacs
rular! ;)

/Mathias
Post by Lars Brinkhoff
Nu har jag det.
IstÀllet för att göra ett hack i shell, gjorde jag följande för att
konvertera radslut till CRLF i Emacs. Jag vet att det finns unix2dos
och liknande, men jag ville ha lite mer kontroll på hantering av
binÀra filer m m.
(defun map-files (fn dir)
"Apply function FN to all files in DIR, including subdirectories.
The function is called with a file loaded into a buffer, which is saved
when the function returns. Doesn't descend into the .hg subdirectory."
(dolist (i (directory-files dir t))
(unless (member (file-name-nondirectory i) '("." ".." ".hg"))
(if (file-directory-p i)
(map-files fn i)
(with-current-buffer (find-file-noselect i)
(funcall fn)
(when (buffer-modified-p)
(save-buffer))
(kill-buffer))))))
(defun set-buffer-crlf ()
(when (eql (coding-system-eol-type buffer-file-coding-system) 0)
(let ((coding (coding-system-change-eol-conversion
buffer-file-coding-system 1)))
(when coding
(set-buffer-file-coding-system coding)))))
(defun convert-to-crlf ()
"Convert all files to CRLF line endings."
(map-files #'set-buffer-crlf "/foo/bar/baz"))
_______________________________________________
Lisp mailing list
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp
Andreas Davour
2014-11-21 14:11:35 UTC
Permalink
Post by Mathias Dahl
Jag har en massa elisp-hack för liknande uppgifter jag gör på jobbet. Emacs
rular! ;)
Har du sagt så mycket måste du ju dela med dig! ;)

-andreas

--
"economics is a pseudoscience; the astrology of our time"
Kim Stanley Robinson
Elias Mårtenson
2014-11-21 14:28:48 UTC
Permalink
Jag anvÀnder Common Lisp för sådana Àndamål. Som t.ex. ett verktyg som
synkroniserar Active Directory med OpenLDAP. Det krÀvde bl.a. att jag
implementerade GSSAPI-stöd till trivial-ldap
<https://github.com/rwiker/trivial-ldap>, som anvÀnder min mappning av
GSSAPI <https://github.com/lokedhs/cl-gss> till CL.

Det extra jobbet var dock vÀrt besvÀret för att jag skulle slippa
implementera det i något annat språk. :-)

Elias
Post by Mathias Dahl
Jag har en massa elisp-hack för liknande uppgifter jag gör på jobbet.
Post by Mathias Dahl
Emacs
rular! ;)
Har du sagt så mycket måste du ju dela med dig! ;)
-andreas
--
"economics is a pseudoscience; the astrology of our time"
Kim Stanley Robinson
_______________________________________________
Lisp mailing list
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp
Andreas Davour
2014-11-21 14:59:07 UTC
Permalink
Intressant, för det var ett projekt jag höll på att slinka in på sjÀlv
för ett par år sedan.

-andreas
Post by Elias MÃ¥rtenson
Jag anvÀnder Common Lisp för sådana Àndamål. Som t.ex. ett verktyg som
synkroniserar Active Directory med OpenLDAP. Det krÀvde bl.a. att jag
implementerade GSSAPI-stöd till trivial-ldap
<https://github.com/rwiker/trivial-ldap>, som anvÀnder min mappning av
GSSAPI <https://github.com/lokedhs/cl-gss> till CL.
Det extra jobbet var dock vÀrt besvÀret för att jag skulle slippa
implementera det i något annat språk. :-)
Elias
Post by Mathias Dahl
Jag har en massa elisp-hack för liknande uppgifter jag gör på jobbet.
Post by Mathias Dahl
Emacs
rular! ;)
Har du sagt så mycket måste du ju dela med dig! ;)
-andreas
--
"economics is a pseudoscience; the astrology of our time"
Kim Stanley Robinson
_______________________________________________
Lisp mailing list
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp
--
"economics is a pseudoscience; the astrology of our time"
Kim Stanley Robinson

Loading...