README.md - clic - Clic is an command line interactive client for gopher written in Common LISP (HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ (DIR) Log (DIR) Files (DIR) Refs (DIR) Tags (DIR) README (DIR) LICENSE --- README.md (3751B) --- 1 SPLIT-SEQUENCE 2 ============== 3 4 [SPLIT-SEQUENCE](http://cliki.net/split-sequence) is a member of the 5 [Common Lisp Utilities](http://cliki.net/Common%20Lisp%20Utilities) 6 family of programs, designed by community consensus. 7 8 9 _Function_ __SPLIT-SEQUENCE, SPLIT-SEQUENCE-IF, SPLIT-SEQUENCE-IF-NOT__ 10 11 12 __Syntax:__ 13 14 __split-sequence__ _delimiter sequence `&key` count 15 remove-empty-subseqs from-end start end test test-not key ⇒ list, 16 index_ 17 18 __split-sequence-if__ _predicate sequence `&key` count 19 remove-empty-subseqs from-end start end key ⇒ list, index_ 20 21 __split-sequence-if-not__ _predicate sequence `&key` count 22 remove-empty-subseqs from-end start end key ⇒ list, index_ 23 24 25 __Arguments and Values:__ 26 27 _delimiter_—an _object_. 28 29 _predicate_—a designator for a _function_ of one _argument_ that 30 returns a _generalized boolean_. 31 32 _sequence_—a _proper sequence_. 33 34 _count_—an _integer_ or __nil__. The default is __nil__. 35 36 _remove-empty-subseqs_—a _generalized boolean_. The default is 37 _false_. 38 39 _from-end_—a _generalized boolean_. The default is _false_. 40 41 _start, end_—_bounding index designators_ of _sequence_. The 42 defaults for _start_ and _end_ are __0__ and __nil__, respectively. 43 44 _test_—a _designator_ for a _function_ of two _arguments_ that 45 returns a _generalized boolean_. 46 47 _test-not_—a _designator_ for a _function_ of two _arguments_ 48 that returns a _generalized boolean_. 49 50 _key_—a _designator_ for a _function_ of one _argument_, or 51 __nil__. 52 53 _list_—a _proper sequence_. 54 55 _index_—an _integer_ greater than or equal to zero, and less 56 than or equal to the _length_ of the _sequence_. 57 58 59 __Description:__ 60 61 Splits _sequence_ into a list of subsequences delimited by objects 62 _satisfying the test_. 63 64 _List_ is a list of sequences of the same kind as _sequence_ that has 65 elements consisting of subsequences of _sequence_ that were delimited 66 in the argument by elements _satisfying the test_. Index is an index 67 into _sequence_ indicating the unprocessed region, suitable as an 68 argument to 69 [subseq](http://www.lispworks.com/documentation/HyperSpec/Body/f_subseq.htm) 70 to continue processing in the same manner if desired. 71 72 The _count_ argument, if supplied, limits the number of subsequences 73 in the first return value; if more than _count_ delimited subsequences 74 exist in _sequence_, the _count_ leftmost delimited subsequences will 75 be in order in the first return value, and the second return value 76 will be the index into _sequence_ at which processing stopped. 77 78 If _from-end_ is non-null, _sequence_ is conceptually processed from 79 right to left, accumulating the subsequences in reverse order; 80 _from-end_ only makes a difference in the case of a non-null _count_ 81 argument. In the presence of _from-end_, the _count_ rightmost 82 delimited subsequences will be in the order that they are in 83 _sequence_ in the first return value, and the second is the index 84 indicating the end of the unprocessed region. 85 86 The _start_ and _end_ keyword arguments permit a certain subsequence 87 of the _sequence_ to be processed without the need for a copying 88 stage; their use is conceptually equivalent to partitioning the 89 subsequence delimited by _start_ and _end_, only without the need for 90 copying. 91 92 If _remove-empty-subseqs_ is null (the default), then empty 93 subsequences will be included in the result. 94 95 In all cases, the subsequences in the first return value will be in 96 the order that they appeared in _sequence_. 97 98 99 __Examples:__ 100 101 <pre> 102 SPLIT-SEQUENCE> (split-sequence #\Space "A stitch in time saves nine.") 103 ⇒ ("A" "stitch" "in" "time" "saves" "nine.") 104 ⇒ 28 105 106 SPLIT-SEQUENCE> (split-sequence #\, "foo,bar ,baz, foobar , barbaz,") 107 ⇒ ("foo" "bar " "baz" " foobar " " barbaz" "") 108 ⇒ 30 109 </pre>