Головна сторінка Груп Google
Довідка | Записатися
'case' special op for strings?
Занадто багато тем, що мають бути показані першими. Для того, щоб показати тему першою, зніміть цю опцію з іншої теми.
Під час обробки вашого запиту сталася помилка. Будь ласка, повторіть вашу спробу пізніше.
флаг
  9 повідомлення - Згорнути всі
Група, до якої ви додаєте допис, - група Usenet. Відтак, будь-хто в Інтернеті бачитиме вашу електронну адресу.
Вашу відповідь не було надіслано.
Ваш допис було надіслано
 
Від:
Кому:
Копія:
Продолжить:
Додати копію: | Додати продовження: | Редагувати тему
Тема:
Підтвердження:
З метою підтвердження введіть символи, які ви бачите на зображенні нижче або числа, які чуєте, натиснувши значок доступу. Прослухайте і введіть цифри, що чуєте
 
Carlo  
Переглянути профіль
 Більше налаштувань 19 Лис 2008, 18:55
Групи новин: comp.lang.lisp
Від: Carlo <the...@carlocapocasa.com>
Дата: Wed, 19 Nov 2008 08:55:42 -0800 (PST)
Локально: Ср 19 Лис 2008 18:55
Тема: 'case' special op for strings?
Is there any way to use the 'case' special op with other comparisons
that 'eq', e.g. 'string='?

Thanks for your help!

Carlo


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Giovanni Gigante  
Переглянути профіль
 Більше налаштувань 19 Лис 2008, 20:36
Групи новин: comp.lang.lisp
Від: Giovanni Gigante <g...@cidoc.iuav.it>
Дата: Wed, 19 Nov 2008 19:36:22 +0100
Локально: Ср 19 Лис 2008 20:36
Тема: Re: 'case' special op for strings?

Carlo wrote:
> Is there any way to use the 'case' special op with other comparisons
> that 'eq', e.g. 'string='?

discussed here:
http://groups.google.it/group/comp.lang.lisp/browse_thread/thread/693...

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Giovanni Gigante  
Переглянути профіль
 Більше налаштувань 19 Лис 2008, 20:51
Групи новин: comp.lang.lisp
Від: Giovanni Gigante <g...@cidoc.iuav.it>
Дата: Wed, 19 Nov 2008 19:51:45 +0100
Локально: Ср 19 Лис 2008 20:51
Тема: Re: 'case' special op for strings?

Giovanni Gigante wrote:
> Carlo wrote:
>> Is there any way to use the 'case' special op with other comparisons
>> that 'eq', e.g. 'string='?

There is also an apache-licensed implementation of "CASE-USING" (which
is what you are asking for) here:
http://gbbopen.org/svn/GBBopen/trunk/source/tools/tools.lisp
and its description here:
http://gbbopen.org/hyperdoc/ref-case-using.html

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Lars Rune Nøstdal  
Переглянути профіль
 Більше налаштувань 19 Лис 2008, 21:31
Групи новин: comp.lang.lisp
Від: Lars Rune Nøstdal <larsnost...@gmail.com>
Дата: Wed, 19 Nov 2008 20:31:51 +0100
Локально: Ср 19 Лис 2008 21:31
Тема: Re: 'case' special op for strings?

On Wed, 2008-11-19 at 08:55 -0800, Carlo wrote:
> Is there any way to use the 'case' special op with other comparisons
> that 'eq', e.g. 'string='?

> Thanks for your help!

> Carlo

http://common-lisp.net/project/alexandria/

SW> (let ((obj "b"))
      (alexandria:switch (obj :test #'string=)
        ("a" "a")
        ("b" "b")
        ("c" "c")))
"b"


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Thomas A. Russ  
Переглянути профіль
 Більше налаштувань 19 Лис 2008, 21:27
Групи новин: comp.lang.lisp
Від: t...@sevak.isi.edu (Thomas A. Russ)
Дата: 19 Nov 2008 11:27:49 -0800
Локально: Ср 19 Лис 2008 21:27
Тема: Re: 'case' special op for strings?

Carlo <the...@carlocapocasa.com> writes:
> Is there any way to use the 'case' special op with other comparisons
> that 'eq', e.g. 'string='?

No.  You need to write your own macro for that.

I suspect that there are actually many such implementations around.  In
any case, it isn't that hard to come up with your own macro:

(defmacro case* (item &rest clauses)
   (if (listp test)
       (destructuring-bind (object &key test) test
          (if test
               ...<build and return clauses here...
              `(case ,object ,@clauses)))
       `(case ,test ,@clauses)))

All that's left is to build the clauses.  You can do that by introducing
a GENSYM'd binding for the value of OBJECT and then construct the
clauses appropriately using either the TEST argument directly or
FIND/MEMBER with the appropriate :TEST argument.

--
Thomas A. Russ,  USC/Information Sciences Institute


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Volkan YAZICI  
Переглянути профіль
 Більше налаштувань 20 Лис 2008, 01:02
Групи новин: comp.lang.lisp
Від: Volkan YAZICI <volkan.yaz...@gmail.com>
Дата: Wed, 19 Nov 2008 15:02:21 -0800 (PST)
Локально: Чт 20 Лис 2008 01:02
Тема: Re: 'case' special op for strings?
On Nov 19, 6:55 pm, Carlo <the...@carlocapocasa.com> wrote:

> Is there any way to use the 'case' special op with other comparisons
> that 'eq', e.g. 'string='?

See EXTENDED-CASE at http://paste.lisp.org/display/63037 address.

Regards.


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
sross  
Переглянути профіль
 Більше налаштувань 20 Лис 2008, 13:23
Групи новин: comp.lang.lisp
Від: sross <ros...@gmail.com>
Дата: Thu, 20 Nov 2008 03:23:05 -0800 (PST)
Локально: Чт 20 Лис 2008 13:23
Тема: Re: 'case' special op for strings?
On Nov 19, 4:55 pm, Carlo <the...@carlocapocasa.com> wrote:

> Is there any way to use the 'case' special op with other comparisons
> that 'eq', e.g. 'string='?

> Thanks for your help!

> Carlo

There is also some discussion of this here
http://groups.google.com/group/comp.lang.lisp/browse_frm/thread/56281...

Erik Naggum's solution is particularly instructive.


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
William James  
Переглянути профіль
(2 користувачів)  Більше налаштувань 29 Лис 2008, 00:45
Групи новин: comp.lang.lisp
Від: "William James" <w_a_x_...@yahoo.com>
Дата: 28 Nov 2008 22:45:45 GMT
Локально: Сб 29 Лис 2008 00:45
Тема: Re: 'case' special op for strings?

A macro isn't needed.

Ruby:

x = 5
[
  [2, 'two'],
  [4, 'four'],
  [6, 'six']
].find{|a,b| a > x }.first
    ==>6


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
William James  
Переглянути профіль
(2 користувачів)  Більше налаштувань 29 Лис 2008, 00:50
Групи новин: comp.lang.lisp
Від: "William James" <w_a_x_...@yahoo.com>
Дата: 28 Nov 2008 22:50:09 GMT
Локально: Сб 29 Лис 2008 00:50
Тема: Re: 'case' special op for strings?

x = 5
[
  [2, 'two'],
  [4, 'four'],
  [6, 'six']
].find{|a,b| a > x }.last
    ==>"six"

--


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Кінець повідомлень
« Повернутися до обговорень « Молодша тема     Старша тема »

Створити групу - Групи Google - Домівка Google - Правила користування послугою - Заява про конфіденційність і нерозголошення інформації
©2009 Google