File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -14,6 +14,36 @@ pub enum PersistentList {
1414 Cons ( Rc < Value > , Rc < PersistentList > , i32 ) ,
1515 Empty ,
1616}
17+ // Experimental
18+ /// list!(sym!("+") 1 2);
19+ /// Meant to look closer to Clojure's native list syntax, to give us some Clojuresque sugar
20+ #[ macro_export]
21+ macro_rules! list {
22+ ( $( $val: expr) * ) => {
23+ {
24+ let mut temp_list_as_vec = vec![ ] ;
25+ $(
26+ temp_list_as_vec. push( $val. to_rc_value( ) ) ;
27+ ) *
28+ temp_list_as_vec. into_iter( ) . collect:: <crate :: persistent_list:: PersistentList >( )
29+ }
30+ } ;
31+ }
32+ /// list_val!(sym!("+") 1 2);
33+ /// Meant to look closer to Clojure's native list syntax, to give us some Clojuresque sugar
34+ /// Returns a Value instead of a PersistentList
35+ #[ macro_export]
36+ macro_rules! list_val {
37+ ( $( $val: expr) * ) => {
38+ {
39+ let mut temp_list_as_vec = vec![ ] ;
40+ $(
41+ temp_list_as_vec. push( $val. to_rc_value( ) ) ;
42+ ) *
43+ temp_list_as_vec. into_iter( ) . collect:: <crate :: persistent_list:: PersistentList >( ) . to_value( )
44+ }
45+ } ;
46+ }
1747// @TODO definitely don't do this
1848#[ derive( Debug , Clone , Hash ) ]
1949struct EmptyHash { }
You can’t perform that action at this time.
0 commit comments