Skip to content

Instantly share code, notes, and snippets.

@okram
Last active August 23, 2020 04:43
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 okram/4a841ae34fc190d03c1a2f131c82342b to your computer and use it in GitHub Desktop.
Save okram/4a841ae34fc190d03c1a2f131c82342b to your computer and use it in GitHub Desktop.
mmlang> :[define,list<=lst[[is,>-[count]==0]|
......> [is,[and,[head]?int],[tail]?list]]]
mmlang> ()[a,list]
==>true
mmlang> (1)[a,list]
==>true
mmlang> ('a')[a,list]
==>false
mmlang> (1;2;3;4;5;6)[a,list]
==>true
mmlang> (1;2;3;4;'b';6)[a,list]
==>false
// List[(Int,Str)*]
mmlang> :[define,list<=[[is,=(_)>-[count]==0]| // |-lst (non-commutative additve group)
......> [[is,[head][a,int]]; // ;-lst (non-commutative multiplicative monoid)
......> [is,[tail][head][a,str]];
......> [is,[tail][tail][a,list]]]]]
mmlang> (1;'a')[a,list]
==>true
mmlang> (1;2)[a,list]
==>false
mmlang> (1;2;'a')[a,list]
==>false
mmlang> (1;'a';2;'b')[a,list]
==>true
mmlang> (1;'a';2)[a,list]
==>false
mmlang> (1;'a';2;'b';3;'c')[a,list]
==>true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment