add list? function to hy.core

`list?` will test if the argument is an instance of list.
This commit is contained in:
Tristan Cacqueray 2019-03-22 02:06:36 +00:00
parent cbca711865
commit b0ed103931
4 changed files with 28 additions and 1 deletions

View File

@ -11,6 +11,7 @@ New Features
------------------------------
* Format strings with embedded Hy code (e.g., `f"The sum is {(+ x y)}"`)
are now supported, even on Pythons earlier than 3.6.
* New list? function.
Bug Fixes
------------------------------

View File

@ -899,6 +899,24 @@ Returns the first logically-true value of ``(pred x)`` for any ``x`` in
True
.. _list?-fn:
list?
-----
Usage: ``(list? x)``
Returns ``True`` if *x* is a list.
.. code-block:: hy
=> (list? '(inc 41))
True
=> (list? '42)
False
.. _string?-fn:
string?

View File

@ -203,6 +203,9 @@ Return series of accumulated sums (or other binary function results)."
"Check if x is float."
(isinstance x float))
(defn list? [x]
(isinstance x list))
(defn symbol? [s]
"Check if `s` is a symbol."
(instance? HySymbol s))
@ -454,7 +457,7 @@ Even objects with the __name__ magic will work."
disassemble drop drop-last drop-while empty? eval even? every? exec first
filter flatten float? fraction gensym group-by identity inc input instance?
integer integer? integer-char? interleave interpose islice iterable?
iterate iterator? juxt keyword keyword? last macroexpand
iterate iterator? juxt keyword keyword? last list? macroexpand
macroexpand-1 mangle map merge-with multicombinations name neg? none? nth
numeric? odd? partition permutations pos? product range read read-str
remove repeat repeatedly rest reduce second some string string? symbol?

View File

@ -267,6 +267,11 @@ result['y in globals'] = 'y' in globals()")
(assert-true (symbol? 'im-symbol))
(assert-false (symbol? (name 'im-symbol))))
(defn test-list? []
"NATIVE: testing the list? function"
(assert-false (list? "hello"))
(assert-true (list? [1 2 3])))
(defn test-gensym []
"NATIVE: testing the gensym function"
(import [hy.models [HySymbol]])