Size: a a a

2020 October 19

a

akater in Lisp Forever
A K
(defun exists (predicate sequence)
 (and (consp sequence)
      (if (funcall predicate (car sequence))
    sequence
    (exists predicate (cdr sequence)))))
Плохо, что аргумент назван sequence, но функция на самом деле только для списков.
источник

a

anton in Lisp Forever
A K
Привет всем! Наконец-то я "написал" свою функцию на проверку вхождения элемента на соответствие предикату))
а зачем оно возвращает хвост?
источник

a

akater in Lisp Forever
anton
а зачем оно возвращает хвост?
А что возвращать?
источник

AK

A K in Lisp Forever
оно возвращает хвост с первой встречи элемента по заданному предикату
источник

a

anton in Lisp Forever
akater
А что возвращать?
T
источник

a

akater in Lisp Forever
anton
T
От этого явно меньше пользы.  Ну существует, и где он?
источник

a

anton in Lisp Forever
akater
От этого явно меньше пользы.  Ну существует, и где он?
а ну лан, раз такое условие
источник

AK

A K in Lisp Forever
akater
Плохо, что аргумент назван sequence, но функция на самом деле только для списков.
lst норм будет?) да, функция для списков
источник

a

akater in Lisp Forever
member тоже возвращает хвост, и правильно.

Но generic, наверное, должен был бы вернуть t или nil, а вторым значением — сам элемент.  Хотя чтоб от него была польза, он должен быть частью объемной библиотеки, которая позволит писать эффективный код типа «если существует такой-то, то сделать с ним такое-то действие in-place»
источник

a

akater in Lisp Forever
A K
lst норм будет?) да, функция для списков
У вас нельзя назвать переменную list?
источник

a

akater in Lisp Forever
Если нельзя, то да, lst.
источник

AK

A K in Lisp Forever
akater
У вас нельзя назвать переменную list?
а так можно было?)
источник

AK

A K in Lisp Forever
в питоне вроде не рекомендуется
источник

AK

A K in Lisp Forever
а в лиспе про это еще не читал
источник

VL

Valeriy L in Lisp Forever
A K
а так можно было?)
можно)
источник

a

akater in Lisp Forever
A K
а так можно было?)
В Lisp-2 можно (и нужно), там у символа отдельные значения для value и для function.
источник

AK

A K in Lisp Forever
ок, буду знать)
источник

a

akater in Lisp Forever
akater
member тоже возвращает хвост, и правильно.

Но generic, наверное, должен был бы вернуть t или nil, а вторым значением — сам элемент.  Хотя чтоб от него была польза, он должен быть частью объемной библиотеки, которая позволит писать эффективный код типа «если существует такой-то, то сделать с ним такое-то действие in-place»
Это можно сформулировать общо так: «Конструктивное доказательство лучше неконструктивного, если оно есть».
источник

a

anton in Lisp Forever
akater
member тоже возвращает хвост, и правильно.

Но generic, наверное, должен был бы вернуть t или nil, а вторым значением — сам элемент.  Хотя чтоб от него была польза, он должен быть частью объемной библиотеки, которая позволит писать эффективный код типа «если существует такой-то, то сделать с ним такое-то действие in-place»
меня название смутило, с member как-то понятно, а вот exists звучит как предикат, о, я придумал название member-if и оказалось это оно и есть
источник

AK

A K in Lisp Forever
anton
меня название смутило, с member как-то понятно, а вот exists звучит как предикат, о, я придумал название member-if и оказалось это оно и есть
в условии сказано "написать функцию exists (p x) ...". в книге говорилось как раз о реализации member-if
источник