Fwd: FP using CL
Pascal Bourguignon <[email protected]> Thu, 6 May 2021 18:19:00 +0200
| Newsgroups | gmane.lisp.clisp.general |
|---|---|
| Message-ID | <[email protected]> |
CgoKLS0tLS0tLS0gTWVzc2FnZSB0cmFuc2bDqXLDqSAtLS0tLS0tLQpTdWJqZWN0OiBSZTogW2Ns aXNwLWxpc3RdIEZQIHVzaW5nIENMClRvOiBEdWtlIE5vcm1hbmRpbiA8ZHVrZW9mcHVybEBnbXgu Y29tPgpSZWZlcmVuY2VzOiA8MjAyMTA1MDExMjAwNTYuYmI2Mjk3NjUxNmY3ZWE5Zjk4NDc4Njk2 QGdteC5jb20+CkZyb206IFBhc2NhbCBCb3VyZ3VpZ25vbiA8cGpiQGluZm9ybWF0aW1hZ28uY29t PgpNZXNzYWdlLUlEOiA8OTE3YzU3MzItZWRiYi1kODI5LTE2NjctNDI0NTY0YTIwMzk0QGluZm9y bWF0aW1hZ28uY29tPgpEYXRlOiBTdW4sIDIgTWF5IDIwMjEgMDI6MDM6MTggKzAyMDAKVXNlci1B Z2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTU7IHJ2Ojc4 LjApIApHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC83OC4xMC4wCk1JTUUtVmVyc2lvbjogMS4w CkluLVJlcGx5LVRvOiA8MjAyMTA1MDExMjAwNTYuYmI2Mjk3NjUxNmY3ZWE5Zjk4NDc4Njk2QGdt eC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZs b3dlZApDb250ZW50LUxhbmd1YWdlOiBmcgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CgpMZSAwMS8wNS8yMDIxIMOgIDIwOjAwLCBEdWtlIE5vcm1hbmRpbiBhIMOpY3JpdMKgOgo+IE5v b2IgaGVyZSEKPiAKPiBBbGwgb2YgbXkgcHJldmlvdXMgbm9uLXBybywgaG9iYnlpc3QgaGFja2lu ZyBleHBlcmllbmNlIGhhcyBiZWVuIGltcGVyYXRpdmUuCj4gSSB3YW50IHRvIGdpdmUgRlAgYSBz aG90IHVzaW5nIENMLgo+IFByb2JsZW06IEkgZG9uJ3Qgc2VlbSB0byBncm9rIGhvdyB0byBzdGFy dCB0aGUgcHJvY2VzcyBvZiBjcmVhdGluZyBhIENMIHByb2dyYW0gdXNpbmcgKipqdXN0KiogZnVu Y3Rpb25zLgo+IAo+IEkgbWVhbiwgSSBjYW4gZmxvd2NoYXJ0IGFuIGltcGVyYXRpdmUtc3R5bGVk IHByb2dyYW0gdy9vIHRvbyBtdWNoIGRpZmZpY3VsdHkuCj4gTmVlZCB0byBncm9rIGhvdyB0byBk byBzYW1lIGluIEZQLXN0eWxlIHdpdGggQ0wuCj4gCj4gSSBjYW4gbGVhcm4gdGhlIENML1NjaGVt ZS9ldCBhbCBzeW50YXgsIGJ1dCBpdCdzIHRoZSAiVGhpbmtpbmcgaW4gRlAiIHRoYXQncyBraWxs aW5nIG1lLiA6KQo+IAo+IEFueSBsZWFkcyB0byByZWxldmFudCBvbmxpbmUgcmVzb3VyY2Uocyk/ IFRJQSAuLi4KCkkgd291bGQgYWR2aXNlIHRvIHN0YXJ0IHdpdGggQmFjaHVzJ3MgZnVuZGF0aW9u YWwgcGFwZXIuCgpodHRwczovL2RsLmFjbS5vcmcvZG9pL3BkZi8xMC4xMTQ1LzM1OTU3Ni4zNTk1 NzkKaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GeGNUNHZLMDEtdwpodHRwczovL3d3 dy55b3V0dWJlLmNvbS93YXRjaD92PU94dVBaWFhpd0trCgoKTm93LCB5b3UgZG9uJ3QgaGF2ZSB0 byB1c2UgKmp1c3QqIGZ1bmN0aW9ucywgYnV0IGluZGVlZCB0aGUgaWRlYSBpcyB0byAKYnVpbGQg ZnVuY3Rpb25zIGZyb20gb3RoZXIgZnVuY3Rpb25zIHVzaW5nIGZ1bmN0aW9uIG9wZXJhdG9ycyAo c3VjaCBhcyAKdGhlIGZ1bmN0aW9uIGNvbXBvc2l0aW9uIG9wZXJhdG9yIGZvciBleGFtcGxlKSwg aW5zdGVhZCBvZiBkZWZpbml0aW5nIAp0aGUgZnVuY3Rpb25zIGRldGFpbGluZyBlYWNoIG9wZXJh dGlvbiBlbGVtZW50IGJ5IGVsZW1lbnQuCgpBIGZ1bmN0aW9uIHRha2VzIGVsZW1lbnRzIGZyb20g YSBzb3VyY2Ugc2V0LCBhbmQgcmV0dXJuIGVsZW1lbnRzIGluIGFuIAppbWFnZSBzZXQuICBUaGUg dXN1YWwgcHJvZ3JhbW1pbmcgd2lsbCBnaXZlIGFuIGV4cHJlc3Npb24gb2YgdGhlIGltYWdlIApl bGVtZW50ICJpbiBmdW5jdGlvbiBvZiIgdGhlIGVsZW1lbnQgb2YgdGhlIHNvdXJjZSBzZXQuCgoK TGV0J3MgZGVmaW5lIGFuIGFmZmluZSBmdW5jdGlvbiBhOgoKYSA6IOKEpCDihpIg4oSkCiAgICAg eCDihqYgMngrMQoKb3IgaW4gbGlzcDoKCiAgICAgKGRlZnVuIGEgKHgpCiAgICAgICAoKyAoKiAy IHgpIDEpKQoKCkJ1dCBpZiB3ZSBkZWZpbmUgdGhlIGZ1bmN0aW9uIDIqIChvciBkb3VibGUpOgoK MiogOiDihKQg4oaSIOKEpAogICAgICB4IOKGpiAyeAoKYW5kIHRoZSBmdW5jdGlvbiAxKyAob3Ig c3VjY2Vzc29yKToKCjErIDog4oSkIOKGkiDihKQKICAgICAgeCDihqYgeCsxCgpUaGVuIGluc3Rl YWQgb2YgZGVmaW5pbmcgYSBnaXZpbmcgYW4gZXhwcmVzc2lvbiBlbGVtZW50IGJ5IGVsZW1lbnQ6 CgphIDog4oSkIOKGkiDihKQKICAgICB4IOKGpiAyeCsxCgp3ZSBjYW4gd3JpdGUgYSBmdW5jdGlv bmFsIGV4cHJlc3Npb246CgphID0gMSsg4oiYIDIqCgpVc2luZyB0aGUgY29tcG9zaXRpb24gb3Bl cmF0aW9uIGJldHdlZW4gdHdvIGZ1bmN0aW9ucyBm4oiYZyh4KSA9IGYoZyh4KSkKClNvOiAgYSh4 KSA9IDErIOKImCAyKiAoeCkgPSAxKygyKih4KSkgPSAxKygyKngpID0gMSsyKnggPSAyKngrMQoK Tm90ZSB0aGF0IENvbW1vbiBMaXNwIGFscmVhZHkgaGFzIGEgZnVuY3Rpb24gMSsgKGFuZCAxLSBm b3IgeC0xKS4KV2Ugb25seSBuZWVkIHRvIGRlZmluZSBkb3VibGUgYW5kIGNvbXBvc2U6CgogICAg IChkZWZ1biBjb21wb3NlIChmIGcpIChsYW1iZGEgKHgpIChmdW5jYWxsIGYgKGZ1bmNhbGwgZyB4 KSkpKQoKICAgICAoZGVmdW4gdGltZXMgKG4pIChsYW1iZGEgKHgpICgqIHggbikpKQoKICAgICAo ZGVmbWFjcm8gZGVmaW5lIChmbmFtZSBmZXhwcmVzc2lvbikKICAgICAgICBgKHByb2duCiAgICAg ICAgICAgKGRlY2xhaW0gKGZ0eXBlIChmdW5jdGlvbiAodCkgdCkgLGZuYW1lKSkKICAgICAgICAg ICAoc2V0ZiAoc3ltYm9sLWZ1bmN0aW9uICcsZm5hbWUpICxmZXhwcmVzc2lvbikpKQoKICAgICAo ZGVmaW5lIGRvdWJsZSAodGltZXMgMikpCiAgICAgKGRlZmluZSBhIChjb21wb3NlIChmdW5jdGlv biAxKykgKGZ1bmN0aW9uIGRvdWJsZSkpKQoKICAgICAobWFwY2FyIChmdW5jdGlvbiBhKSAoaW90 YSAxMCkpCiAgICAgLS0+ICgxIDMgNSA3IDkgMTEgMTMgMTUgMTcgMTkpCgpOb3RlIGhvdyBJIHVz ZWQgbWFwY2FyLCBhbmQgbm90IGEgcHJvY2VkdXJhbCBkb3RpbWVzLCBzbyBJIGdldCB0aGUKcmVz dWx0cyBmb3IgYWxsIHRoZSBlbGVtZW50cyBvZiB0aGUgaW5wdXQgc2V0IChpb3RhIDEwKSBhdCBv bmNlLAppbnN0ZWFkIG9mIGNvbXB1dGluZyBhbmQgZ2V0dGluZyB0aGUgcmVzdWx0IGVsZW1lbnQg YnkgZWxlbWVudDoKCiAgICAgKGRvdGltZXMgKGkgMTApCiAgICAgICAocHJpbnQgKGEgaSkpKQoK ICAgICAxCiAgICAgMwogICAgIDUKICAgICA3CiAgICAgOQogICAgIDExCiAgICAgMTMKICAgICAx NQogICAgIDE3CiAgICAgMTkKCk5vdyB0aGUgcXVlc3Rpb24gaXMgdG8gY29sbGVjdCBhIGxpYnJh cnkgb2YgZnVuY3Rpb25hbCBvcGVyYXRvcnMgdGhhdAp3aWxsIGhlbHAgdXMgd3JpdGluZyBzdWNo IGZ1bmN0aW9uYWwgZXhwcmVzc2lvbnMgZWFzaWx5IGFuZApleHByZXNzaXZlbHkuICBBbmQgbm90 IGFsbCBmdW5jdGlvbnMgaW4gdGhlIENMIGxpYnJhcnkgYXJlIGNvbmR1Y3RpdmUKdG8gZWFzeSBi dWlsZGluZyBmdW5jdGlvbmFsIGV4cHJlc3Npb25zIGZyb20gdGhlbS4gIFNvIHdlIG1heSBhbHNv CmhhdmUgdG8gcmV3cml0ZSBzb21lIGxpYnJhcnkgZnVuY3Rpb25zLgoKClNvIGhlcmUgaXMgYW5v dGhlciBleGFtcGxlOyB3ZSBjb3VsZCB3cml0ZToKCiAgICAgKGRlZnVuIG1pbnVzIChuKSAobGFt YmRhICh4KSAoLSB4IG4pKSkKICAgICAoZGVmdW4gcGFydGlhbCAoZiB4KQogICAgICAgKGxhbWJk YSAoeSkgKGZ1bmNhbGwgZiB4IHkpKSkKCiAgICAgKG1hcGNhcgogICAgICAoY29tcG9zZSAocGFy dGlhbCAoZnVuY3Rpb24gcmVkdWNlKSAoZnVuY3Rpb24gKykpCiAgICAgICAgICAgICAgIChsYW1i ZGEgKHgpCiAgICAgICAgICAgICAgICAgKG1hcGNhciAobGFtYmRhIChmKSAoZnVuY2FsbCBmIHgp KQogICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgKGZ1bmN0aW9uIGlkZW50aXR5KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBvc2UgKG1pbnVzIDEwKSAoZnVuY3Rpb24g YSkpKSkpKQogICAgICAoaW90YSAxMCkpCiAgICAgLS0+ICgtOSAtNiAtMyAwIDMgNiA5IDEyIDE1 IDE4KQoKICAgICAobGlzdCAoZnVuY3Rpb24gaWRlbnRpdHkpCiAgICAgICAgICAgKGNvbXBvc2Ug KG1pbnVzIDEwKSAoZnVuY3Rpb24gYSkpKQoKICAgICAtLT4gKCM8Q29tcGlsZWQtZnVuY3Rpb24g aWRlbnRpdHkgI3gzMDAwMDAxMkQ1RkY+CiAgICAgICAgICM8Y2NsOmNvbXBpbGVkLWxleGljYWwt Y2xvc3VyZSAoOmludGVybmFsIGNvbXBvc2UpICN4MzAyMDAyNzVFOTlGPikKCmJ1aWxkcyBhIGxp c3Qgb2YgMiBmdW5jdGlvbnMsIGlkZW50aXR5ID0geCDihqYgeAphbmQgYS0xMCA9IHgg4oamICgy KngpKzEtMTAgPSAyKngtOQoKCiAgICAgICAgICAgKGxhbWJkYSAoeCkKICAgICAgICAgICAgICht YXBjYXIgKGxhbWJkYSAoZikgKGZ1bmNhbGwgZiB4KSkKICAgICAgICAgICAgICAgICAgICAgKGxp c3QgKGZ1bmN0aW9uIGlkZW50aXR5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tcG9z ZSAobWludXMgMTApIChmdW5jdGlvbiBhKSkpKSkKCgppcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMg YW4gYXJndW1lbnQgYW5kIGFwcGxpZXMgaXQgdG8gZWFjaCBmdW5jdGlvbgpvZiB0aGUgbGlzdCwg cmV0dXJuaW5nIGEgbGlzdCBvZiByZXN1bHRzOgoKICAgICAgICAgICgobGFtYmRhICh4KQogICAg ICAgICAgICAgKG1hcGNhciAobGFtYmRhIChmKSAoZnVuY2FsbCBmIHgpKQogICAgICAgICAgICAg ICAgICAgICAobGlzdCAoZnVuY3Rpb24gaWRlbnRpdHkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb21wb3NlIChtaW51cyAxMCkgKGZ1bmN0aW9uIGEpKSkpKQogICAgICAgICAgIDUpCiAg ICAgICAgIC0tPiAoNSAxKQoKcGFydGlhbCBpcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBmdW5j dGlvbiBhbmQgYW4gYXJndW1lbnQsIGFuZApyZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBh IHNlY29uZCBhcmd1bWVudCBhbmQgY2FsbCB0aGUgZmlyc3QKZnVuY3Rpb24gd2l0aCB0aGUgdHdv IGFyZ3VtZW50cy4gIEl0J3MgYSBwYXJ0aWFsIGFwcGxpY2F0aW9uIG9mIHRoZQpmdW5jdGlvbi4K ClNvOiAgKGZ1bmNhbGwgKHBhcnRpYWwgZiB4KSB5KSAgPT0gKGZ1bmNhbGwgZiB4IHkpCgpUaGVy ZWZvcmU6ICAgICAocGFydGlhbCAoZnVuY3Rpb24gcmVkdWNlKSAoZnVuY3Rpb24gKykpCnJldHVy bnMgYSBmdW5jdGlvbiB0aGF0IHN1bXMgYSBsaXN0IG9mIG51bWJlcnM6CgogICAgIChmdW5jYWxs IChwYXJ0aWFsIChmdW5jdGlvbiByZWR1Y2UpIChmdW5jdGlvbiArKSkgKGxpc3QgMSAyIDMgMTAw KSkKICAgICAtLT4gMTA2CgpTbyB3ZSBjYW4gdXNlIGl0IHRvIGNvbXBvc2UgaXQgd2l0aCB0aGUg cHJldmlvdXMgbGFtYmRhIHdoaWNoIHJldHVybnMKYSBsaXN0IG9mIDIgbnVtYmVyczoKCiAgICAg KGZ1bmNhbGwgKGNvbXBvc2UgKHBhcnRpYWwgKGZ1bmN0aW9uIHJlZHVjZSkgKGZ1bmN0aW9uICsp KQogICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAobWFwY2FyIChsYW1iZGEgKGYpIChmdW5jYWxsIGYgeCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaXN0IChmdW5jdGlvbiBpZGVudGl0eSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBvc2UgKG1pbnVzIDEwKSAoZnVuY3Rpb24gYSkp KSkpKQogICAgICAgICAgICAgIDUpCiAgICAgLS0+IDYKCmFuZCB1c2UgdGhlIGNvbXBvc2l0aW9u IGluIGEgbWFwIG9mIHRoZSBzZXQgb2YgaW50ZWdlcnMgZnJvbSAwIHRvIDk6CgogICAgIChtYXBj YXIKICAgICAgKGNvbXBvc2UgKHBhcnRpYWwgKGZ1bmN0aW9uIHJlZHVjZSkgKGZ1bmN0aW9uICsp KQogICAgICAgICAgICAgICAobGFtYmRhICh4KQogICAgICAgICAgICAgICAgIChtYXBjYXIgKGxh bWJkYSAoZikgKGZ1bmNhbGwgZiB4KSkKICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChm dW5jdGlvbiBpZGVudGl0eSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21wb3Nl IChtaW51cyAxMCkgKGZ1bmN0aW9uIGEpKSkpKSkKICAgICAgKGlvdGEgMTApKQogICAgIC0tPiAo LTkgLTYgLTMgMCAzIDYgOSAxMiAxNSAxOCkKCgotLSAKX19QYXNjYWwgQm91cmd1aWdub25fXwoK LS0gCl9fUGFzY2FsIEJvdXJndWlnbm9uX18KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpjbGlzcC1saXN0IG1haWxpbmcgbGlzdApjbGlzcC1saXN0QGxp c3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9s aXN0aW5mby9jbGlzcC1saXN0Cg==