From 891b1cfc82322f8017f0a4f6b707d6fe52024545 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Fri, 3 Sep 2021 21:51:30 -0400 Subject: Unified tuple and record syntax. --- lux-jvm/source/luxc/lang/host/jvm.lux | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'lux-jvm/source/luxc/lang/host/jvm.lux') diff --git a/lux-jvm/source/luxc/lang/host/jvm.lux b/lux-jvm/source/luxc/lang/host/jvm.lux index df9575ef4..44cc680eb 100644 --- a/lux-jvm/source/luxc/lang/host/jvm.lux +++ b/lux-jvm/source/luxc/lang/host/jvm.lux @@ -10,7 +10,7 @@ [data [binary (#+ Binary)] [collection - ["." list ("#/." functor)]]] + ["." list ("#\." monad)]]] [macro ["." code] [syntax (#+ syntax:)]] @@ -96,10 +96,10 @@ options (.tuple (<>.many .local_identifier))]) (let [g!type (code.local_identifier type) g!none (code.local_identifier none) - g!tags+ (list/each code.local_tag options) + g!tags+ (list\each code.local_tag options) g!_left (code.local_identifier "_left") g!_right (code.local_identifier "_right") - g!options+ (list/each (function (_ option) + g!options+ (list\each (function (_ option) (` (def: .public (~ (code.local_identifier option)) (~ g!type) (|> (~ g!none) @@ -107,22 +107,28 @@ options)] (in (list& (` (type: .public (~ g!type) (.Record - (~ (code.record (list/each (function (_ tag) - [tag (` .Bit)]) - g!tags+)))))) + (~ (|> g!tags+ + (list\each (function (_ tag) + (list tag (` .Bit)))) + list\conjoint + code.tuple))))) (` (def: .public (~ g!none) (~ g!type) - (~ (code.record (list/each (function (_ tag) - [tag (` #0)]) - g!tags+))))) + (~ (|> g!tags+ + (list\each (function (_ tag) + (list tag (` #0)))) + list\conjoint + code.tuple)))) (` (def: .public ((~ (code.local_identifier ++)) (~ g!_left) (~ g!_right)) (-> (~ g!type) (~ g!type) (~ g!type)) - (~ (code.record (list/each (function (_ tag) - [tag (` (or (value@ (~ tag) (~ g!_left)) - (value@ (~ tag) (~ g!_right))))]) - g!tags+))))) + (~ (|> g!tags+ + (list\each (function (_ tag) + (list tag (` (or (value@ (~ tag) (~ g!_left)) + (value@ (~ tag) (~ g!_right))))))) + list\conjoint + code.tuple)))) g!options+)))) -- cgit v1.2.3