From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Dr. Arne Babenhauserheide" Newsgroups: gmane.lisp.guile.user Subject: Re: Brainstorming Wisp and Guile for financial bookkeeping Date: Wed, 04 Oct 2023 21:34:29 +0200 Message-ID: <875y3mktdf.fsf@web.de> References: <87v8bpeykp.fsf@dustycloud.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28440"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.10.7; emacs 29.0.92 Cc: guile-user@gnu.org To: Christine Lemmer-Webber Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Wed Oct 04 22:48:05 2023 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qo8mq-000772-Kj for guile-user@m.gmane-mx.org; Wed, 04 Oct 2023 22:48:04 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qo8m6-0001xA-Tt; Wed, 04 Oct 2023 16:47:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qo8m5-0001wz-8h for guile-user@gnu.org; Wed, 04 Oct 2023 16:47:17 -0400 Original-Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qo8m3-0007hE-JI for guile-user@gnu.org; Wed, 04 Oct 2023 16:47:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1696452429; x=1697057229; i=arne_bab@web.de; bh=1Trb1ixnwLq25cy4m+Vb0GfiDprM4Q0rPMZHB1kiAnI=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:Date:In-reply-to; b=VojacEFbFxy82J04K3MZuws9YVjr7VWLX0sEUo1EiRTwGUBrvcPa4l65Cr83zwBDCz8LEnMvq1A BjVDA21vT/Bmn6COr2AZswW4Su3GyMECtYV45mM4gaZhhr6GZA3xaqdeUSUtvhsbaO6B9LOWtbtsk F9WDnAeMshYQ7GToXUJV0847XVVF4JRWGJoTUl6/yhzj5m2ZC6fWGXKbn0q/s3jYsdP9iiCwj9pJb 7E9bbTLyrv4vuCIpT2qKQJqbfXOWrDk/AFQAjVsLPA0gt99/si1RNdURBl+3NkV/+2ftAE4oM/J+s bono1TBjJWsYGsIWBi29Db9zf6R0yRMDtH0A== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from fluss ([84.165.22.233]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MnX5T-1rUefQ19Ij-00jddA; Wed, 04 Oct 2023 22:47:09 +0200 In-reply-to: <87v8bpeykp.fsf@dustycloud.org> X-Provags-ID: V03:K1:UR7NCNG5BalT2iTOpkbMpJd/hL7TSnj4F3BzEbqfx4fLW712EIl tzcRyYMQ9J1jCqpuEk/Y6iHFPTBXapfjuzaydKvoL072qfXF1wK4CIPfZZDaZT7MbwRaF6X uqjXFLYGUCtpDgsebnE6L/n9rw52ElSKAc1drCFOBZVtkHAupr0rImqsWcRg/eHI2XwuhNE 0NA5MSrStLd9NElBsihNg== UI-OutboundReport: notjunk:1;M01:P0:GeofXipUie4=;zVdCeKqYLZt33PYm80Es300vaG9 I5MxcpfAwOK7oqUTr1059WO+9VeNnQ6w1mE9vMfM2swOIzkJ+TP6RwAX/h26gE3CoV09wJWTN 6ND+jZRPb+PVKK7LDSjGvRG9bKnOHp0b4R9Aoq3OzJODvo9+9BjS9qdGz1Qt3lUD8cFEiIvGt i0dC8sptcPPor4gSU9ZX5ZUd3fNCOrIrirjzraa6cOfae6Xo3Z4t9rE/saxYsd5X/rNMKoZY5 vUEYasRg1PTeQ2dsARA0ixsjCBKaDzk/yyNIwDQR2h4MnDipH+BWrwhW1z8zFCQHfrwLB29iS vFj4Fvq5QR0amlPsllFHLNd5d/InT2VdEmblv4M/6akbE2z0CyjOrOktioQm8vd0qY9ERDOiD w6s0bF1QHIbzfj3RJ66K6ZWHl0GGP114qzLrnlyJ6vYsox7FPpsGM1wrC/UD8IbWnapktMeCc ms9ZLyxv6WC0o9qbOC7pWSkpnmL85QLHpvWKZN3O28/p09zoDOQ2H9nkSJx016PTN3X2KIokE qOLHbjPpvYAoi79RuffHSs0P9Sb/UKykxbZURJT9HiP0LArUhN5sLgMhlFtls5yC4OyBWFppG 3DZTQR9G8kWdM/fbdzRnZhyTpoDygFNZyvuZxFscdhxFVUGZdgFwfuvIrcZVnhpuHj12okU+M arn19dWToHBjbhn74rRxo8dEzZPBL7vIO4tYvGqg+3dOYBQtzXgrxZkncd+QTNu+LNNiD525q OnEM7veqLSC0VwYfy40UgZlm3LXFuDE2qUiBR7WTJc06IxsMFHFBbEZkf3lrK+2bSIjXa/0s Received-SPF: pass client-ip=212.227.17.11; envelope-from=arne_bab@web.de; helo=mout.web.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, LOTS_OF_MONEY=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:19231 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Christine Lemmer-Webber writes: > 2020-03-30 * "Starting balance" > Assets:Retirement:IRA 1321.84 USD=20 > Equity:OpeningBalance I wondered whether we could make this executable as it is, but for that we=E2=80=99d have to create one procedure for every date. Since accounts have to be declared with something like account ArneBab:Assets:Autorenhonorar:epubli creating a proc per account would actually give us some compile-time validation. import : ice-9 optargs define USD 'USD define-syntax-rule (account name) define* (name #:optional value currency) list (quote name) value currency define (entry description account-name1 value1 currency1 account-name2 value2 currency2) ;; do something useful . description define-syntax date =CE=BB : x syntax-case x : * : _ * description account1 account2 #' apply entry : cons description : append account1 account2 define-syntax-rule : 2020-03-30 args ... date args ... ;; Missing piece: Running ;; define-syntax-rule (the-date args ...) (date args ...) ;; for each possible date. And actually implementing some state tracking =E2=80=A6 This already works (but only returns "Starting balance"): account Assets:Retirement:IRA account Equity:OpeningBalance 2020-03-30 * "Starting balance" Assets:Retirement:IRA 1321.84 USD=20 Equity:OpeningBalance Best wishes, Arne =2D-=20 Unpolitisch sein hei=C3=9Ft politisch sein, ohne es zu merken. draketo.de --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAmUdz0wQHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD6/nsD/0fiaPasocllHkhxUVQoMpNuSp5v9J0hKF9 kHQYJ2kNqNi4do+RewNqmpN62cHm0ZFDTl8267Cgod2QDT4vRuyEnyV7Wa+DysWe z/dHtxts/ONN7TAHpmA286WOsipB67tBZyRDhIjpuXRx5At6fDZP8dHOzNEpivMH Z15QhqIZtTIevPXi+osraErCsl79wCgZ8kj8y/bUXdmdoPwDdMJMUGw6UkzG1MGN KasLf2oEStNGtUaURknqUETDi3SBXSXURbEPcEms/SLB2711RujW3LsVyTIF1Lq6 GA1/Jb/vJJ7twmbrBswA7FuF4E/59Ma/z6ikWEqeWWreieMbVASGfJmlzY7aHKm0 0PBlzJsa+n+6DQsDFfzuEYoBPaS5UJ7QjWdyzTPsK/JkE6/Y3p2yd9cNHyIBDfeb I2w0qo737LjDakVJdJLQGucDpxQ7kp4JOfa5JkI6zw3/9ehyw6sDqqslq0vQvgAI TGh4Qahpd7JWsHtRLUbEv7+Cd6wPgmget15TKgeNO/a/6T9KNL/IDaaqRy1dWsa/ UEB7xDkTO0SWm8fvh/D/5edesATldqnW/jP8uMsBYcu6wdsC2oK9gjZ1bgJ5noce S5lIJAH/YtO0CAgSpTGgTqquVyvJf0nwetAWg57FlTonC+I8LNyHFtLfHEgskvbK /He354eIS4jEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmUdz0wQHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSFrSA/9jkaK5EqonNSDkgIWe2LwRuC8K UrXGM36IkNYftj56j55ZDB8XqIG7WvXF52Jm2dfL36jwwntGU81+dFG4SrbHNn7N 0hHIvvpDHTifLbgt3bXv7B7STLaQUWDQwqbymwHioSGedMPvJFKlXrp6ChILtp4p VU/XIAqC8kQRpQY9xA== =MDtn -----END PGP SIGNATURE----- --=-=-=--