Skip to content

Instantly share code, notes, and snippets.

@jmercouris
Created December 13, 2017 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmercouris/d13bab33473b77c0cdf9faf07ecfee7e to your computer and use it in GitHub Desktop.
Save jmercouris/d13bab33473b77c0cdf9faf07ecfee7e to your computer and use it in GitHub Desktop.
(defun version-1 (search-string)
(ps:ps (let* ((regex-string (ps:lisp (concatenate 'string "/" search-string "[A-Za-z]*/gi")))
(matcher (ps:regex regex-string))
(stringy "some magical string breadfish")
(matches ())
(last-match t)))))
;; Version 1 Output
"(function () {
var regexString = '/lol[A-Za-z]*/gi';
var matcher = /REGEX-STRING/;
var stringy = 'some magical string breadfish';
var matches = null;
var lastMatch = true;
return declare();
})();"
(defun version-2 (search-string)
(ps:ps (let* ((matcher (ps:regex (ps:lisp (concatenate 'string "/" search-string "[A-Za-z]*/gi"))))
(stringy "some magical string breadfish")
(matches ())
(last-match t)))))
;; Version 2 Output
The value (PARENSCRIPT:LISP (CONCATENATE
'STRING
"/"
SEARCH-STRING
"[A-Za-z]*/gi")) is not of the expected type (OR
STRING
SYMBOL
CHARACTER).
[Condition of type TYPE-ERROR]
Restarts:
0: [RETRY] Retry SLIME interactive evaluation request.
1: [*ABORT] Return to SLIME's top level.
2: [ABORT-BREAK] Reset this thread
3: [ABORT] Kill this thread
Backtrace:
0: (STRING (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi")))
1: (#<Anonymous Function #x3020015A697F> (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi")))
2: (PARENSCRIPT::PS-COMPILE (PARENSCRIPT:REGEX (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi"))))
3: (PARENSCRIPT::COMPILE-EXPRESSION (PARENSCRIPT:REGEX (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi"))))
4: (#<Anonymous Function #x3020015AA0EF> MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi"))))
5: (PARENSCRIPT::PS-COMPILE (PARENSCRIPT:VAR MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi")))))
6: (PARENSCRIPT::COMPILE-PROGN ((PARENSCRIPT:VAR MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP #))) (SYMBOL-MACROLET NIL (LET (#) (DECLARE) (LET # # #)))))
7: (#<Anonymous Function #x3020015B858F> (PARENSCRIPT:VAR MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP (CONCATENATE 'STRING "/" SEARCH-STRING "[A-Za-z]*/gi")))) (SYMBOL-MACROLET ..))
8: (PARENSCRIPT::PS-COMPILE (PROGN (PARENSCRIPT:VAR MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP #))) (SYMBOL-MACROLET NIL (LET (#) (DECLARE) (LET # # #)))))
9: (PARENSCRIPT::LAMBDA-WRAP (PROGN (PARENSCRIPT:VAR MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP #))) (SYMBOL-MACROLET NIL (LET (#) (DECLARE) (LET # # #)))))
10: (PARENSCRIPT::WITH-LAMBDA-SCOPE (PROGN (PARENSCRIPT:VAR MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP #))) (SYMBOL-MACROLET NIL (LET (#) (DECLARE) (LET # # #)))))
11: (#<Anonymous Function #x3020015C751F> ((MATCHER (PARENSCRIPT:REGEX (PARENSCRIPT:LISP #)))) (DECLARE) (LET ((STRINGY "some magical string breadfish")) ..))
12: (PARENSCRIPT::PS-COMPILE (LET ((MATCHER (PARENSCRIPT:REGEX #))) (DECLARE) (LET ((STRINGY "some magical string breadfish")) (DECLARE) (LET (#) (DECLARE) (LET # #)))))
13: (PARENSCRIPT::COMPILE-PROGN ((LET ((MATCHER #)) (DECLARE) (LET (#) (DECLARE) (LET # # #)))))
14: (#<Anonymous Function #x3020015B858F> (LET ((MATCHER (PARENSCRIPT:REGEX #))) (DECLARE) (LET ((STRINGY "some magical string breadfish")) (DECLARE) (LET (#) (DECLARE) (LET # #)))))
15: (PARENSCRIPT::PS-COMPILE (PROGN (LET ((MATCHER #)) (DECLARE) (LET (#) (DECLARE) (LET # # #)))))
16: (PARENSCRIPT::COMPILE-PROGN ((LET* ((MATCHER #) (STRINGY "some magical string breadfish") (MATCHES NIL) (LAST-MATCH T)))))
17: (#<Anonymous Function #x3020015B858F> (LET* ((MATCHER (PARENSCRIPT:REGEX #)) (STRINGY "some magical string breadfish") (MATCHES NIL) (LAST-MATCH T))))
18: (PARENSCRIPT::PS-COMPILE (PROGN (LET* ((MATCHER #) (STRINGY "some magical string breadfish") (MATCHES NIL) (LAST-MATCH T)))))
19: (PARENSCRIPT::COMPILE-STATEMENT (PROGN (LET* ((MATCHER #) (STRINGY "some magical string breadfish") (MATCHES NIL) (LAST-MATCH T)))))
--more--
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment