19
голосов
7ответов
12173 просмотров

Получение первых n элементов списка в Common Lisp?

Как мне получить первые n элемент списка? CL-USER> (equal (some-function 2 '(1 20 300)) '(1 20)) T Я абсолютно уверен, что это элементарно, но помогите брату новичку.

24
голосов
9ответов
7970 просмотров

Лисп как язык сценариев в приложении C ++

Привет, я рассматривал возможность добавления языка сценариев в свой фреймворк, слышал о Lisp и думал, что попробую.Есть ли виртуальная машина для Lisp, такая как Lua и Python, или я ошибаюсь?Я нашел здесь CLISP, http://clisp.cons.org/ , но не уверен, что это то, чтоИщу. Может ли кто-нибудь ...

3
голосов
1ответов
406 просмотров

Перевод функции Q и P из Little Schemer в Common Lisp?

В главе 9 Little Schemer автор представляет следующие две функции (define Q (lambda (str n) (cond ((zero? (remainder (first$ str ) n)) (Q (second$ str ) n)) (t (build (first$ str ) (lambda ( ) (Q (second$ str ) n))))))) (define P (lambda ...

1
голосов
3ответов
664 просмотров

Common Lisp: недостатки внутри цикла

Интересно, почему в следующем коде d не переводится с cons в x. Любые подсказки приветствуются. (defun it (x) (setq f '(a b c)) (dolist (d f) (cons d x)) (print x)) Спасибо!

9
голосов
2ответов
2149 просмотров

Когда используется initform?

Я создаю класс для некоторых работ по молекулярной динамике следующим образом: (defclass %atom (particle) ((name :initarg :name :initform (error "Every atom in the system must have a name!")) (mass :accessor mass :initarg :mass :initform (getmass name)) (charge :accessor charge :inita...

2
голосов
2ответов
1487 просмотров

Использование Lisp для повторной печати списка

У меня есть небольшая и интересная проблема, но я не могу предложить идеального решения. Буду признателен, если вы поможете мне или подскажете. Проблема в следующем: для любого списка, например "(a b c), мы преобразуем его в" [a b c] или '(a (b c)), мы преобразуем его в' [A [B C]] Другими ...

2
голосов
2ответов
348 просмотров

указатели на файлы lisp в классах

Я столкнулся с проблемой понимания того, как CLOS обрабатывает доступ к файлам внутри класса. В c ++ я мог бы сделать это: class Foo { Foo (string filename); // opens the file (my_file) requested by the filename ~Foo (); // close the file FILE * my_file; // a persistent file-hand...

4
голосов
4ответов
553 просмотров

Несколько конструкторов в общем lisp

Могут ли классы иметь несколько конструкторов и / или конструкторов копирования в common-lisp?То есть - чтобы создать класс для нового вектора - «vecr» для представления трехмерных векторов действительных чисел, я хотел бы определить новый класс, который можно инициализировать несколькими способ...

4
голосов
4ответов
3884 просмотров

Common Lisp: проблемы начинающих с funcall

Я пытаюсь передать функцию в качестве аргумента и вызвать эту функцию в другой функции. Часть моего кода выглядит так: (defun getmove(strategy player board printflag) (setq move (funcall strategy player board)) (if printflag (printboard board)) стратегия передается как символ, пред...

9
голосов
2ответов
1119 просмотров

"разворачивать" для обыкновенной шепелявости?

Я изучил довольно много схем из SICP, но сейчас меня больше интересует обычный шепелявый.Я знаю, что fold обычного lisp - это reduce со специальными аргументами для левого или правого сворачивания, но что эквивалентно unfold?Гугл не сильно помог.На самом деле у меня такое впечатление, что развор...

2
голосов
2ответов
2086 просмотров

Получение переполнения стека с помощью GNU CLisp (Windows)

Я получаю сообщение «СБРОС переполнения стека программы» во время выполнения моей программы.Поэтому я добавил счетчик, чтобы узнать, сколько раз я рекурсивно вызываю основную функцию в своей программе.Оказывается, это около 30 000 раз, и данные, которые я складываю, представляют собой списки дли...

6
голосов
2ответов
2366 просмотров

Clozure Common Lisp - TCP Socket Programming - Sending a Reply

I have a very small program which opens a socket and accepts a connection. It then grabs the remote IP and port. I'd like to send a text message to the remote computer (telnet) and close the connection. I can't determine which function is for sending a message to the telnet client. The Clozure...

8
голосов
2ответов
5496 просмотров

Common lisp integer to hex conversion

Is there a similar function to (parse-integer "ff" :radix 16) that will take me back the other way? If I have the int 255 how do I convert it to the string ff?

15
голосов
5ответов
5172 просмотров

How to examine list of defined functions from Common Lisp REPL prompt

I'm evaluating/testing a browser based application presumably written in common lisp. Apart from the browser based interface, the software provides a 'Listener' window with a 'CL-User>' REPL prompt. I wish to examine the list of functions, symbols, and packages from the REPL prompt. So that ...

5
голосов
2ответов
2759 просмотров

Hex to decimal conversion in common lisp

Is there an easy helper function in common lisp to convert from hex to decimal?

4
голосов
4ответов
4826 просмотров

Parsing numbers from strings in lisp

Here's the brief problem: Input: a list of strings, each containing numbers (" 3.4 5.4 1.2 6.4" "7.8 5.6 4.3" "1.2 3.2 5.4") Output: a list of numbers (3.4 5.4 1.2 6.4 7.8 5.6 4.3 1.2 3.2 5.4) Here's my attempt at coding this: (defun parse-string-to-float (line &optional (start 0)) "P...

6
голосов
4ответов
6262 просмотров

In common-lisp, how do I modify part of a list parameter from within a function without changing the original list?

I'm trying to pass a list to a function in Lisp, and change the contents of that list within the function without affecting the original list. I've read that Lisp is pass-by-value, and it's true, but there is something else going on that I don't quite understand. For example, this code works as e...

3
голосов
2ответов
971 просмотров

How do I tell if the value of a variable is a symbol bound to a procedure in Scheme?

I am familiar with Common Lisp and trying to learn some Scheme, so I have been trying to understand how I'd use Scheme for things I usually code in Common Lisp. In Common Lisp there's fboundp, which tells me if a symbol (the value of a variable) is bound to a function. So, I would do this: (let...

6
голосов
2ответов
213 просмотров

In CL Postmodern what :col-type to use for Many to Many field?

When defining a database access object for use in cl-postmodern, what should the :col-type be for a Many to Many field?

8
голосов
3ответов
1467 просмотров

Updating font-lock keywords in emacs without major mode reload

I am doing small modification to SLIME, so that I can get all currently loaded symbols from Lisp, analyze them and make font-lock fontify them. I managed to do all these steps, but I have a small problem - when keyword list changes in font-lock the buffer is not updated unless you restart the ma...

7
голосов
2ответов
567 просмотров

What is the difference between '(a b c) and (list 'a 'b 'c)?

I am reading "On lisp" and encountered this code (I simplified it a bit). CL-USER> (defun foo () '(a b c)) FOO CL-USER> (foo) (A B C) ...

19
голосов
1ответов
4337 просмотров

Using string object as a hash key in Common Lisp

I'm trying to create a "dictionary" type - ie hash table with a string as a key. Is this possible or wise in Lisp? I noticed that this works as expected: > (setq table (make-hash-table)) #<HASH-TABLE :TEST EQL size 0/60 #x91AFA46> > (setf (gethash 1 table) "one") "one" > (gethash...

1
голосов
2ответов
294 просмотров

Looking for a particular Common Lisp implementation

I'm looking for a Common Lisp implementation I ran across once, sometime in the past year or two. I only remember a few things, and I don't know how to search for it based on these facts, so maybe somebody here can help. it was open-source, but wasn't one of the big ones (SBCL, CMUCL, MCL, etc...

24
голосов
4ответов
12968 просмотров

How do I iterate through a directory in Common Lisp?

I'm using OpenMCL on Darwin, and I'd like to do something like: (loop for f in (directory "somedir") collect (some-per-file-processing f)) But I can't get directory to return anything other than NIL, and I can't seem to find any good explanation online (other than "its different for each sys...

6
голосов
3ответов
560 просмотров

Simple issue with subseq (LISP)

I just started using LISP, coming from a background in C. So far its been fun, although with an incredible learning curve (I'm an emacs newbie too). Anyway, I'm having a silly issue with the following code to parse include statements from c source - if anyone can comment on this and suggest a so...

10
голосов
3ответов
1486 просмотров

Common Lisp function or idiom for creating a temporary file name?

Is there a Common Lisp function or typical way for creating a temporary file name or file?

4
голосов
2ответов
956 просмотров

Unilateral SSL with CL+SSL package

In Lispworks on XP when I do: CL-USER 489> (cl+ssl:make-ssl-client-stream (cl+ssl:stream-fd *standard-output*)) I get: Error: A failure in the SSL library occurred on handle #. (Return code: 1)SSL error queue: error:140C5042:SSL routines:SSL_UNDEFINED_FUNCTION:called a function you shoul...

14
голосов
5ответов
7331 просмотров

Calling C++ (not C) from Common Lisp?

I am wondering if there is some way to call C++ code from Common Lisp (preferably portably, and if not, preferably in SBCL, and if not, well, then Clozure, CLisp or ECL). The C++ would be called inside loops for numeric computation, so it would be nice if calls were fast. CFFI seems to not supp...

6
голосов
1ответов
250 просмотров

How to use Lispworks comm package for SSL access in Postmodern instead of cl+ssl

On XP, I'd like to use Postmodern in Lispworks to use the database on a server via SSL. It looks like CL+SSL has a problem with setting up a unilateral SSL connection. Lispworks works fine. Is there a way to get Postmodern to use the socket set up by Lispworks instead of one by CL+SSL? Or is the...

0
голосов
2ответов
119 просмотров

How to call particular function depending on variable that's passed in?

I'm fairly new to lisp but I've been playing around with it. I have several problems which I need clarifying. Below is my little macro that I defined. (defmacro transform (query) '(lambda (row) (eq (nth 1 query) (nth 0 (nth 0 row))) ) ) I'm just wondering how I can specify the function t...