From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb31.google.com (mail-yb1-xb31.google.com [IPv6:2607:f8b0:4864:20::b31]) by sourceware.org (Postfix) with ESMTPS id A4DA53858284 for ; Tue, 28 Jun 2022 04:54:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A4DA53858284 Received: by mail-yb1-xb31.google.com with SMTP id o19so13751976ybg.2 for ; Mon, 27 Jun 2022 21:54:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=mEDslEXYnqorKkhU8wLQo0sWVHIGViMVlT9MABR4chg=; b=vKDSVEG8KBeCMRRzjrZfWDFepijZTAxJa0OvhAnJaempBeA33HdkRC4eNEicbNx/qB I3IxDI0IC7xYsLJl/TNZj6udvuOiP6xgLva9DHRFMsF/QuJqQqcYo8Q/yxcGQYGr+Gkk T6Of4R/39FHcpcLSW93ths2eCgJ2HPqKChguHXlMp1/hFklztyqe6NiwGTG1iHWNRFn2 lQE8j+LHqVSC2x/BaJwistx6LeFASXqXHkLLYF4PDdAZoawqUtWsj7mnASWMl1Jx5XL8 g9hyd0FbbOUMpk+Kq5ZpM4P1LLI+75k7Ca/NNuCrGLuAiTx+M/Z3AsDupXASxkJtBOOC 6IVA== X-Gm-Message-State: AJIora9Ky9BLsvxyt49eyCS8epS3AScyVpHDDJKRpA1MNaDcwEWemPZp Tj+SanXoIBgNN8YTx7i20K0r2Z7dqYM8JNbYEPFVvhOc X-Google-Smtp-Source: AGRyM1u/Y9x0/om021QvoFMrPujPTX7o0uOWSUKlJSn1BkFKaqqZBQtRF9b9xBCR9KRcdYcRSEjJWsSvnsJ5YcBlAig= X-Received: by 2002:a25:d612:0:b0:669:b4e1:30ba with SMTP id n18-20020a25d612000000b00669b4e130bamr17327835ybg.266.1656392088899; Mon, 27 Jun 2022 21:54:48 -0700 (PDT) MIME-Version: 1.0 From: Panicz Maciej Godek Date: Tue, 28 Jun 2022 06:54:28 +0200 Message-ID: Subject: Kawa evaluation process To: kawa@sourceware.org X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jun 2022 04:54:51 -0000 Hi, as I mentioned before, I'm working on a structure editor for Scheme. One challange that I've been facing is to represent atoms (other than vectors and strings). The problem with atoms, though, is that they can be of different types - for example, the atom represented by "x" is a symbol, but if I add the character ":" at the end, it becomes a keyword. Or the atom represented by "1" is an exact number, but if I add some non-numeric character, it becomes something else. Moreover, some values have more than one print representation - for example, number 1 can be represented as "1", "#x1", "#o1" etc. So I've been wondering if there's an option to create a "box" that would be transparent to the process of evaluation (possibly with some tweaks to Kawa): that I would have an object that holds a string and a value, and when the evaluator asks it for the value, it would provide whatever value would result from parsing the string? (my current "solution" to this problem is that I only support symbols, but my project reached the stage where this is no longer an option)