现在我必须在排序之前将hastable复制到列表中:
(defun good-red ()
(let ((tab (make-hash-table)) (res '()))
(dotimes (i 33) (setf (gethash (+ i 1) tab) 0))
(with-open-file (stream "test.txt")
(loop for line = (read-line stream nil)
until (null line)
do
(setq nums (butlast (str2lst (substring line 6))))
(dolist (n nums) (incf (gethash n tab)))
))
**(maphash #'(lambda (k v) (push (cons k v) res)) tab)**
(setq sort-res (sort res #'< :key #'cdr))
(reverse (nthcdr (- 33 18) (mapcar #'car sort-res))) ))
Run Code Online (Sandbox Code Playgroud)
顺便说一句,获取列表的前N个元素的更好方法是什么?
假设有三个项目A,B和C.C中的模块将由A和B共享.因为没有java的CLASSPATH,所以在从C导入模块时是否需要使用绝对路径?
任何建议表示赞赏!
Haskell有XMonad,CommonLisp有StampWM.如果有一个使用OCaml开发,那么它应该比这两个更快.
祝商祺!
现在我们已成功使用ocsigen来托管旧的python cgi应用程序.但是,我们需要详细研究ocsigen,以决定是否使用OCaml语言开发新的Web应用程序.
任何建议表示赞赏!
* (make-pathname :name "cgi-bin/")
#P"cgi-bin/"
* (merge-pathnames "nav.py" #P"cgi-bin/")
#P"cgi-bin/nav.py" ; **it is ok**
* (merge-pathnames "nav.py" (make-pathname :name "cgi-bin/"))
#P"nav.py" ; why ?
*(defvar bp #P"/media/E/myapp/cgi-bin/")
* bp
#P"/media/E/myapp/cgi-bin/")
* (merge-pathnames "nav.py" bp)
#P"nav.py" ; why ?
* (merge-pathnames "nav.py" #P"/media/E/myapp/cgi-bin/")
#P"/media/E/myapp/cgi-bin/nav.py" ; **it is ok**
Run Code Online (Sandbox Code Playgroud)
我使用的是sbcl-1.0.54.
任何建议表示赞赏!
:|temp files|以下代码片段的含义是什么?
(defmethod acceptor-remove-session ((acceptor my-site-acceptor) (session t))
(declare (ignore acceptor))
(loop for path in (session-value :|temp files|)
do
(ignore-errors (delete-file path))))
Run Code Online (Sandbox Code Playgroud) 钢筋位于当前目录中.
$ls -l rebar
--rwxr-xr-x 1 *** wheel 90778 8 6 23:05 rebar*
$./rebar
escript: no such file or directory: './rebar'
$whereis escript
escript: /usr/local/bin/escript
Run Code Online (Sandbox Code Playgroud)
我使用的是FreeBSD 9.0.
谢谢!
"with-open-file"将从文件的开头读取.如果文件非常大,如何有效地读取最后20行?
祝商祺!
在toplevel,我得到以下输出:
#`B
- : [> `B ] = `B
Run Code Online (Sandbox Code Playgroud)
那么什么是B意味着什么?我们为什么需要它?
祝商祺!
我想"共享"会cabal install更快,对吧?shared的默认值为False.我们应该使用True还是False进行共享?
谢谢!