| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version |
Arguments: prefix sequence
The default methods for all types of sequences do the following: prefix and sequence must be sequences.
This function returns a non-nil
value if
sequence starts
with prefix and returns
nil
otherwise. nil
is always returned if prefix is longer than
sequence.
The value returned when sequence does start with prefix is the length of prefix. If prefix is shorter than sequence, this value is also the index of the element just after the prefix portion of sequence.
(prefixp "foo" "foobar") => 3 ;; The length of "foo" and the ;; index of #\b in "foobar" (prefixp "foo" "foo") => 3 ;; the length of "foo" (prefixp "foo1" "foo2") => nil (prefixp "foo1" "foo") => nil (prefixp '(1 2 3) '(1 2 3 4 5 6 7)) => 3 (prefixp (list #\f) "foo") => 1 (prefixp "f" (vector \#f #\o)) => 1 ;; Some arguments always return the same value. ;; So if PREFIX-USED has length 0, 0 is returned: (prefixp "" [any-sequence]) -> 0 (prefixp nil [any-sequence]) -> 0 ;; USE CASE: Suppose the value of a variable is a string made up ;; of an OS name followed by a version number. Then if PREFIX ;; is a particular OS name, we can test for whether the OS ;; named in the variable is an instance of that OS: (defvar *os-version* "CENTOS-4.5.21") (defun centos-p (str) (prefixp "CENTOS" str)) (centos-p *os-version*) -> 6 ;; that is true (setq *os-version* "REDHAT-4.5.21") (centos-p *os-version*) -> nil
Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version |