Code: Select all
("exb" "BEGIN" "unknown" "num" "of" "items" "END" "BEGIN" "ex3" "END" "something" "and" "so" "on" )
Code: Select all
(("BEGIN" "unknown" "num" "of" "items" "END") ("BEGIN" "ex3" "END"))
accomplish this.
Code: Select all
("exb" "BEGIN" "unknown" "num" "of" "items" "END" "BEGIN" "ex3" "END" "something" "and" "so" "on" )
Code: Select all
(("BEGIN" "unknown" "num" "of" "items" "END") ("BEGIN" "ex3" "END"))
Code: Select all
(setf lst '("exb" "BEGIN" "unknown" "num" "of" "items" "END" "BEGIN" "ex3" "END" "something" "and" "so" "on" ))
(setf ix (map (fn (x) (first x)) (ref-all {BEGIN|END} lst regex)))
(push 0 ix)
(apply (fn (, y z) (println (push ( y (inc (- z y)) lst) result -1))) ix 3)
;result
(("BEGIN" "unknown" "num" "of" "items" "END") ("BEGIN" "ex3" "END"))
Code: Select all
(dolist (e lst)
(cond ((= e "END") (and tmplst (push tmplst result -1) (setf bid nil tmplst nil)))
((true? bid) (push e tmplst -1))
((= e "BEGIN") (and (setf bid true) (push e tmplst -1))))
)
;result
(("BEGIN" "unknown" "num" "of" "items") ("BEGIN" "ex3"))
winger wrote:orCode: Select all
(setf lst '("exb" "BEGIN" "unknown" "num" "of" "items" "END" "BEGIN" "ex3" "END" "something" "and" "so" "on" )) (setf ix (map (fn (x) (first x)) (ref-all {BEGIN|END} lst regex))) (push 0 ix) (apply (fn (, y z) (println (push ( y (inc (- z y)) lst) result -1))) ix 3) ;result (("BEGIN" "unknown" "num" "of" "items" "END") ("BEGIN" "ex3" "END"))
May be we need a match-all function :)Code: Select all
(dolist (e lst) (cond ((= e "END") (and tmplst (push tmplst result -1) (setf bid nil tmplst nil))) ((true? bid) (push e tmplst -1)) ((= e "BEGIN") (and (setf bid true) (push e tmplst -1)))) ) ;result (("BEGIN" "unknown" "num" "of" "items") ("BEGIN" "ex3"))
Code: Select all
(setf lst
'("exb" "BEGIN" "unknown" "num" "of" "items" "END" "BEGIN" "ex3" "END" "something" "and" "so" " on" ))
(while (set 'm (match '(* "BEGIN" * "END" *) lst))
(println "===>" (m 1))
(set 'lst (last m)))
;===>("unknown" "num" "of" "items")
;===>("ex3")
Code: Select all
(match '(* {BEGIN} * "END" *) lst)