From aebe088d578cdfdd151705084c0d96b4bf0382c7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 00:29:39 +0000 Subject: [PATCH] deploy: d771eece1c49ca77797702d605eb07754c8ecefd --- 404.html | 2 +- assets/js/{7e736cac.1cb4ebab.js => 7e736cac.c2378695.js} | 2 +- ...runtime~main.49a0b330.js => runtime~main.136b170d.js} | 2 +- blog.html | 2 +- blog/archive.html | 2 +- blog/authors.html | 2 +- blog/emacs-scheme-regex.html | 2 +- blog/lips-history.html | 2 +- blog/tags.html | 2 +- blog/tags/emacs.html | 2 +- blog/tags/history.html | 2 +- blog/tags/lips.html | 2 +- blog/tags/scheme.html | 2 +- docs/category/introduction-to-scheme.html | 2 +- docs/category/lips-introduction.html | 2 +- docs/intro.html | 2 +- docs/lips/REPL.html | 2 +- docs/lips/SRFI.html | 2 +- docs/lips/embeding-repl.html | 2 +- docs/lips/environments.html | 2 +- docs/lips/extension.html | 2 +- docs/lips/functional-helpers.html | 2 +- docs/lips/intro.html | 2 +- docs/lips/reflection.html | 9 ++++----- docs/lips/sxml.html | 2 +- docs/scheme-intro/continuations.html | 2 +- docs/scheme-intro/core.html | 2 +- docs/scheme-intro/data-types.html | 2 +- docs/scheme-intro/input-output.html | 2 +- docs/scheme-intro/macros.html | 2 +- docs/scheme-intro/next-step.html | 2 +- docs/scheme-intro/streams.html | 2 +- docs/scheme-intro/what-is-lisp.html | 2 +- index.html | 2 +- reference.html | 2 +- screenshooter.html | 2 +- sitemap.xml | 2 +- 37 files changed, 40 insertions(+), 41 deletions(-) rename assets/js/{7e736cac.1cb4ebab.js => 7e736cac.c2378695.js} (55%) rename assets/js/{runtime~main.49a0b330.js => runtime~main.136b170d.js} (98%) diff --git a/404.html b/404.html index 06a20295..c0ca8cf5 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | LIPS Scheme - + diff --git a/assets/js/7e736cac.1cb4ebab.js b/assets/js/7e736cac.c2378695.js similarity index 55% rename from assets/js/7e736cac.1cb4ebab.js rename to assets/js/7e736cac.c2378695.js index 808249fe..3b22e904 100644 --- a/assets/js/7e736cac.1cb4ebab.js +++ b/assets/js/7e736cac.c2378695.js @@ -1 +1 @@ -"use strict";(self.webpackChunknew_docs=self.webpackChunknew_docs||[]).push([[6372],{2591:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>c,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"lips/reflection","title":"Reflection","description":"A way to introspect and manipulate LIPS internals","source":"@site/docs/lips/reflection.md","sourceDirName":"lips","slug":"/lips/reflection","permalink":"/docs/lips/reflection","draft":false,"unlisted":false,"editUrl":"https://github.com/LIPS-scheme/lips/tree/master/docs/docs/lips/reflection.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"description":"A way to introspect and manipulate LIPS internals"},"sidebar":"tutorialSidebar","previous":{"title":"Core features","permalink":"/docs/lips/intro"},"next":{"title":"SXML (e.g. for React)","permalink":"/docs/lips/sxml"}}');var t=r(4848),i=r(8453);const c={sidebar_position:2,description:"A way to introspect and manipulate LIPS internals"},l="Reflection",a={},o=[{value:"Numbers",id:"numbers",level:2},{value:"Lists and Pairs",id:"lists-and-pairs",level:2},{value:"Strings",id:"strings",level:2},{value:"Characters",id:"characters",level:2},{value:"Procedures",id:"procedures",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"reflection",children:"Reflection"})}),"\n",(0,t.jsx)(n.p,{children:"You can use standard JavaScript methods to inspect LIPS objects."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Scheme functions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"dir"})," - this procedure is inspired by Python function with the same name, it return all properties\nthat you can access on an object. Including those from object prototype and whole chain."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"env"})," - function return everything what is inside current-environment."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"JavaScript functions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.keys"})," - this JavaScript method will return all string keys from an object."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.values"})," - return the value of the object."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.entries"})," - this return array of ",(0,t.jsx)(n.code,{children:"[key,value]"})," pairs."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.getOwnPropertySymbols"})," - similar to ",(0,t.jsx)(n.code,{children:"Object.keys"})," but return all symbols"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"numbers",children:"Numbers"}),"\n",(0,t.jsx)(n.p,{children:"You can access internal representation of numbers as JavaScript objects"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((num 1/2+10i))\n (print num.__im__)\n (print num.__re__)\n (print num.__re__.__denom__)\n (print num.__re__.__num__))\n;; ==> 10\n;; ==> 1/2\n;; ==> 2\n;; ==> 1\n"})}),"\n",(0,t.jsx)(n.h2,{id:"lists-and-pairs",children:"Lists and Pairs"}),"\n",(0,t.jsx)(n.p,{children:"You can access Pairs as JavaScript objects:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((x '(1 2 3)))\n x.cdr.cdr.car)\n;; ==> 3\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You can also manipulate the list with ",(0,t.jsx)(n.code,{children:"set!"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((x '(1 2 3)))\n (set! x.cdr.cdr.cdr x)\n x)\n;; ==> #0=(1 2 3 . #0#)\n"})}),"\n",(0,t.jsx)(n.p,{children:"Above create a cycle. When you you try to display a cycle it's printed using R7RS datum syntax."}),"\n",(0,t.jsx)(n.h2,{id:"strings",children:"Strings"}),"\n",(0,t.jsx)(n.p,{children:"Same as with numbers and list you can access internals of Strings."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(let ((str "hello"))\n (str.__string__.toUpperCase)\n (set! str.__string__ "world")\n str)\n'})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"__string__"})," property is read only so you can't modify it's value:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((str \"hello\"))\n (set! str.__string__ \"world\")\n str)\n;; ==> Cannot assign to read only property '__string__' of object '[object Object]'\n"})}),"\n",(0,t.jsx)(n.h2,{id:"characters",children:"Characters"}),"\n",(0,t.jsx)(n.p,{children:"Similar to string you can access internals of Characters."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((x #\\X)) (dir x))\n;; ==> (__char__ constructor toUpperCase toLowerCase toString serialize valueOf)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["the ",(0,t.jsx)(n.code,{children:"__char__"})," property is a string that hold the value of the character."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(let ((x #\\X))\n (write x)\n (newline)\n (write x.__char__)\n (newline))\n;; ==> #\\X\n;; ==> "X"\n'})}),"\n",(0,t.jsx)(n.h2,{id:"procedures",children:"Procedures"}),"\n",(0,t.jsxs)(n.p,{children:["Procedures as described in ",(0,t.jsx)(n.a,{href:"/docs/lips/intro#procedures",children:"Core features"})," are JavaScript functions,\nthey also hold additional properties like ",(0,t.jsx)(n.code,{children:"__code__"})," and ",(0,t.jsx)(n.code,{children:"__doc__"}),". The first property is the live\nsource code of the procedure that you can modify:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(define (repeater x)\n "(repeater value)\n\n Function prints the value 1 time and modifies itself to repeat\n (+ n 1) times on the next call."\n (for-each (lambda () (print x)) (range 1))\n (let ((r (cadr (cdadddr (. repeater \'__code__)))))\n (set-cdr! r (list (+ (cadr r) 1)))))\n'})}),"\n",(0,t.jsx)(n.p,{children:"This procedure modify its source code. Each time you execute this function it will run one more\ntimes."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(print "1")\n(repeater \'hello)\n;; ==> 1\n;; ==> hello\n(print "2")\n(repeater \'hello)\n;; ==> 2\n;; ==> hello\n;; ==> hello\n(print "3")\n(repeater \'hello)\n;; ==> 3\n;; ==> hello\n;; ==> hello\n;; ==> hello\n'})}),"\n",(0,t.jsxs)(n.p,{children:["The first expression of the procedure is a doc string, unless a string is the only expression,\nin that case it's a return value. To access doc string you can use ",(0,t.jsx)(n.code,{children:"help"})," or ",(0,t.jsx)(n.code,{children:"__doc__"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'repeater.__doc__\n"(repeater value)\n\nFunction prints the value 1 time and modifies itself to repeat\n(+ n 1) times on the next call."\n'})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>l});var s=r(6540);const t={},i=s.createContext(t);function c(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunknew_docs=self.webpackChunknew_docs||[]).push([[6372],{2591:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>c,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"lips/reflection","title":"Reflection","description":"A way to introspect and manipulate LIPS internals","source":"@site/docs/lips/reflection.md","sourceDirName":"lips","slug":"/lips/reflection","permalink":"/docs/lips/reflection","draft":false,"unlisted":false,"editUrl":"https://github.com/LIPS-scheme/lips/tree/master/docs/docs/lips/reflection.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"description":"A way to introspect and manipulate LIPS internals"},"sidebar":"tutorialSidebar","previous":{"title":"Core features","permalink":"/docs/lips/intro"},"next":{"title":"SXML (e.g. for React)","permalink":"/docs/lips/sxml"}}');var t=r(4848),i=r(8453);const c={sidebar_position:2,description:"A way to introspect and manipulate LIPS internals"},l="Reflection",a={},o=[{value:"Numbers",id:"numbers",level:2},{value:"Lists and Pairs",id:"lists-and-pairs",level:2},{value:"Strings",id:"strings",level:2},{value:"Characters",id:"characters",level:2},{value:"Procedures",id:"procedures",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"reflection",children:"Reflection"})}),"\n",(0,t.jsx)(n.p,{children:"You can use standard JavaScript methods to inspect LIPS objects."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Scheme functions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"dir"})," - this procedure is inspired by Python function with the same name, it return all properties\nthat you can access on an object. Including those from object prototype and whole chain."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"env"})," - function return everything what is inside current-environment."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"JavaScript functions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.keys"})," - this JavaScript method will return all string keys from an object."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.values"})," - return the value of the object."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.entries"})," - this return array of ",(0,t.jsx)(n.code,{children:"[key,value]"})," pairs."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"Object.getOwnPropertySymbols"})," - similar to ",(0,t.jsx)(n.code,{children:"Object.keys"})," but return all symbols"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"numbers",children:"Numbers"}),"\n",(0,t.jsx)(n.p,{children:"You can access internal representation of numbers as JavaScript objects"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((num 1/2+10i))\n (print num.__im__)\n (print num.__re__)\n (print num.__re__.__denom__)\n (print num.__re__.__num__))\n;; ==> 10\n;; ==> 1/2\n;; ==> 2\n;; ==> 1\n"})}),"\n",(0,t.jsx)(n.h2,{id:"lists-and-pairs",children:"Lists and Pairs"}),"\n",(0,t.jsx)(n.p,{children:"You can access Pairs as JavaScript objects:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((x '(1 2 3)))\n x.cdr.cdr.car)\n;; ==> 3\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You can also manipulate the list with ",(0,t.jsx)(n.code,{children:"set!"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((x '(1 2 3)))\n (set! x.cdr.cdr.cdr x)\n x)\n;; ==> #0=(1 2 3 . #0#)\n"})}),"\n",(0,t.jsx)(n.p,{children:"Above create a cycle. When you you try to display a cycle it's printed using R7RS datum syntax."}),"\n",(0,t.jsx)(n.h2,{id:"strings",children:"Strings"}),"\n",(0,t.jsx)(n.p,{children:"Same as with numbers and list you can access internals of Strings."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(let ((str "hello"))\n (str.__string__.toUpperCase))\n;; ==> "HELLO"\n'})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"__string__"})," property is read only so you can't modify its value:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((str \"hello\"))\n (set! str.__string__ \"world\")\n str)\n;; ==> Cannot assign to read only property '__string__' of object '[object Object]'\n"})}),"\n",(0,t.jsx)(n.h2,{id:"characters",children:"Characters"}),"\n",(0,t.jsx)(n.p,{children:"Similar to string you can access internals of Characters."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:"(let ((x #\\X)) (dir x))\n;; ==> (__char__ constructor toUpperCase toLowerCase toString serialize valueOf)\n"})}),"\n",(0,t.jsxs)(n.p,{children:["the ",(0,t.jsx)(n.code,{children:"__char__"})," property is a string that hold the value of the character."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(let ((x #\\X))\n (write x)\n (newline)\n (write x.__char__)\n (newline))\n;; ==> #\\X\n;; ==> "X"\n'})}),"\n",(0,t.jsx)(n.h2,{id:"procedures",children:"Procedures"}),"\n",(0,t.jsxs)(n.p,{children:["Procedures as described in ",(0,t.jsx)(n.a,{href:"/docs/lips/intro#procedures",children:"Core features"})," are JavaScript functions,\nthey also hold additional properties like ",(0,t.jsx)(n.code,{children:"__code__"})," and ",(0,t.jsx)(n.code,{children:"__doc__"}),". The first property is the live\nsource code of the procedure that you can modify:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(define (repeater x)\n "(repeater value)\n\n Function prints the value 1 time and modifies itself to repeat\n (+ n 1) times on the next call."\n (for-each (lambda () (print x)) (range 1))\n (let ((r (cadr (cdadddr (. repeater \'__code__)))))\n (set-cdr! r (list (+ (cadr r) 1)))))\n'})}),"\n",(0,t.jsx)(n.p,{children:"This procedure modify its source code. Each time you execute this function it will run one more\ntimes."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'(print "1")\n(repeater \'hello)\n;; ==> 1\n;; ==> hello\n(print "2")\n(repeater \'hello)\n;; ==> 2\n;; ==> hello\n;; ==> hello\n(print "3")\n(repeater \'hello)\n;; ==> 3\n;; ==> hello\n;; ==> hello\n;; ==> hello\n'})}),"\n",(0,t.jsxs)(n.p,{children:["The first expression of the procedure is a doc string, unless a string is the only expression,\nin that case it's a return value. To access doc string you can use ",(0,t.jsx)(n.code,{children:"help"})," or ",(0,t.jsx)(n.code,{children:"__doc__"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-scheme",children:'repeater.__doc__\n"(repeater value)\n\nFunction prints the value 1 time and modifies itself to repeat\n(+ n 1) times on the next call."\n'})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>l});var s=r(6540);const t={},i=s.createContext(t);function c(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.49a0b330.js b/assets/js/runtime~main.136b170d.js similarity index 98% rename from assets/js/runtime~main.49a0b330.js rename to assets/js/runtime~main.136b170d.js index 9914fa2a..c45912b4 100644 --- a/assets/js/runtime~main.49a0b330.js +++ b/assets/js/runtime~main.136b170d.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,c,r,f={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var t=b[e]={exports:{}};return f[e].call(t.exports,t,t.exports,d),t.exports}d.m=f,e=[],d.O=(a,t,c,r)=>{if(!t){var f=1/0;for(i=0;i=r)&&Object.keys(d.O).every((e=>d.O[e](t[o])))?t.splice(o--,1):(b=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[t,c,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var f={};a=a||[null,t({}),t([]),t(t)];for(var b=2&c&&e;"object"==typeof b&&!~a.indexOf(b);b=t(b))Object.getOwnPropertyNames(b).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,d.d(r,f),r},d.d=(e,a)=>{for(var t in a)d.o(a,t)&&!d.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,t)=>(d.f[t](e,a),a)),[])),d.u=e=>"assets/js/"+({360:"b62caabb",478:"840797c7",849:"0058b4c6",1235:"a7456010",1903:"acecf23e",1933:"35ee46b0",2272:"69aa9e93",2301:"6d18ad6b",2711:"9e4087bc",2866:"61d90f5f",3249:"ccc49370",3484:"13a1c259",3789:"726afaaf",3976:"0e384e19",4044:"92fa5ef1",4212:"621db11d",4413:"e511e452",4583:"1df93b7f",4813:"6875c492",5011:"df5a86e1",5742:"aba21aa0",6271:"f724a01c",6365:"c74dcec5",6372:"7e736cac",6440:"3828c8cd",6580:"0522e7aa",6969:"14eb3368",7098:"a7bd4aaa",7209:"f2e31a35",7350:"6878938b",7472:"814f3328",7643:"a6aa9e1f",7915:"c284b67b",8121:"3a2db09e",8130:"f81c1134",8133:"14a48451",8146:"c15d9823",8177:"e1902777",8209:"01a85c17",8401:"17896441",8649:"413466e5",8691:"ab461798",8947:"ef8b811a",9048:"a94703ab",9067:"5ad8d976",9204:"aa178e2b",9263:"d969d8ea",9397:"68243087",9647:"5e95c892",9651:"4f7497d7",9712:"1ba8abbb",9858:"36994c47"}[e]||e)+"."+{195:"8fd6d84d",360:"aa35aa65",416:"39f57a47",478:"c96b5ad6",849:"0f1f0d46",1235:"35651660",1903:"bd6470b3",1933:"8f697f91",2237:"66fcbfbc",2272:"2bf1e156",2301:"27284ffb",2711:"c809fcd6",2866:"91265fd4",3249:"83e04d21",3347:"18dfe3b9",3484:"ce796566",3789:"0a3e15cb",3976:"660f9d11",4044:"d15f09bb",4212:"af8ccb67",4413:"ae4b00d1",4583:"00d19001",4813:"1928affb",5011:"3fa53997",5742:"f5d4ac8d",5929:"afb107d6",6271:"51b5a57e",6365:"c648f275",6372:"1cb4ebab",6440:"6d175597",6580:"9d4051dd",6969:"00347ef4",7098:"8794d1bc",7209:"e4dcaeff",7350:"400083d4",7472:"10db33a4",7643:"a3958393",7915:"3ea8b46c",8121:"c1ec56fd",8130:"ba989b8b",8133:"ddb2c881",8146:"024de278",8158:"848e6959",8177:"a8610025",8209:"5200d571",8401:"42d5ed25",8553:"dfe58b8e",8649:"4bfa6453",8691:"405f8d17",8913:"a77cc8d9",8947:"e6f6be2e",9048:"d90b76ed",9067:"b56915bc",9204:"c464cf32",9263:"47320509",9397:"bd750e75",9647:"4f997d54",9651:"c16406ad",9712:"26884892",9858:"9727f24b"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},r="new-docs:",d.l=(e,a,t,f)=>{if(c[e])c[e].push(a);else{var b,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var r=c[e];if(delete c[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/",d.gca=function(e){return e={17896441:"8401",68243087:"9397",b62caabb:"360","840797c7":"478","0058b4c6":"849",a7456010:"1235",acecf23e:"1903","35ee46b0":"1933","69aa9e93":"2272","6d18ad6b":"2301","9e4087bc":"2711","61d90f5f":"2866",ccc49370:"3249","13a1c259":"3484","726afaaf":"3789","0e384e19":"3976","92fa5ef1":"4044","621db11d":"4212",e511e452:"4413","1df93b7f":"4583","6875c492":"4813",df5a86e1:"5011",aba21aa0:"5742",f724a01c:"6271",c74dcec5:"6365","7e736cac":"6372","3828c8cd":"6440","0522e7aa":"6580","14eb3368":"6969",a7bd4aaa:"7098",f2e31a35:"7209","6878938b":"7350","814f3328":"7472",a6aa9e1f:"7643",c284b67b:"7915","3a2db09e":"8121",f81c1134:"8130","14a48451":"8133",c15d9823:"8146",e1902777:"8177","01a85c17":"8209","413466e5":"8649",ab461798:"8691",ef8b811a:"8947",a94703ab:"9048","5ad8d976":"9067",aa178e2b:"9204",d969d8ea:"9263","5e95c892":"9647","4f7497d7":"9651","1ba8abbb":"9712","36994c47":"9858"}[e]||e,d.p+d.u(e)},(()=>{var e={5354:0,1869:0};d.f.j=(a,t)=>{var c=d.o(e,a)?e[a]:void 0;if(0!==c)if(c)t.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var r=new Promise(((t,r)=>c=e[a]=[t,r]));t.push(c[2]=r);var f=d.p+d.u(a),b=new Error;d.l(f,(t=>{if(d.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var r=t&&("load"===t.type?"missing":t.type),f=t&&t.target&&t.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+f+")",b.name="ChunkLoadError",b.type=r,b.request=f,c[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,t)=>{var c,r,f=t[0],b=t[1],o=t[2],n=0;if(f.some((a=>0!==e[a]))){for(c in b)d.o(b,c)&&(d.m[c]=b[c]);if(o)var i=o(d)}for(a&&a(t);n{"use strict";var e,a,t,c,r,f={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var t=b[e]={exports:{}};return f[e].call(t.exports,t,t.exports,d),t.exports}d.m=f,e=[],d.O=(a,t,c,r)=>{if(!t){var f=1/0;for(i=0;i=r)&&Object.keys(d.O).every((e=>d.O[e](t[o])))?t.splice(o--,1):(b=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[t,c,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var f={};a=a||[null,t({}),t([]),t(t)];for(var b=2&c&&e;"object"==typeof b&&!~a.indexOf(b);b=t(b))Object.getOwnPropertyNames(b).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,d.d(r,f),r},d.d=(e,a)=>{for(var t in a)d.o(a,t)&&!d.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,t)=>(d.f[t](e,a),a)),[])),d.u=e=>"assets/js/"+({360:"b62caabb",478:"840797c7",849:"0058b4c6",1235:"a7456010",1903:"acecf23e",1933:"35ee46b0",2272:"69aa9e93",2301:"6d18ad6b",2711:"9e4087bc",2866:"61d90f5f",3249:"ccc49370",3484:"13a1c259",3789:"726afaaf",3976:"0e384e19",4044:"92fa5ef1",4212:"621db11d",4413:"e511e452",4583:"1df93b7f",4813:"6875c492",5011:"df5a86e1",5742:"aba21aa0",6271:"f724a01c",6365:"c74dcec5",6372:"7e736cac",6440:"3828c8cd",6580:"0522e7aa",6969:"14eb3368",7098:"a7bd4aaa",7209:"f2e31a35",7350:"6878938b",7472:"814f3328",7643:"a6aa9e1f",7915:"c284b67b",8121:"3a2db09e",8130:"f81c1134",8133:"14a48451",8146:"c15d9823",8177:"e1902777",8209:"01a85c17",8401:"17896441",8649:"413466e5",8691:"ab461798",8947:"ef8b811a",9048:"a94703ab",9067:"5ad8d976",9204:"aa178e2b",9263:"d969d8ea",9397:"68243087",9647:"5e95c892",9651:"4f7497d7",9712:"1ba8abbb",9858:"36994c47"}[e]||e)+"."+{195:"8fd6d84d",360:"aa35aa65",416:"39f57a47",478:"c96b5ad6",849:"0f1f0d46",1235:"35651660",1903:"bd6470b3",1933:"8f697f91",2237:"66fcbfbc",2272:"2bf1e156",2301:"27284ffb",2711:"c809fcd6",2866:"91265fd4",3249:"83e04d21",3347:"18dfe3b9",3484:"ce796566",3789:"0a3e15cb",3976:"660f9d11",4044:"d15f09bb",4212:"af8ccb67",4413:"ae4b00d1",4583:"00d19001",4813:"1928affb",5011:"3fa53997",5742:"f5d4ac8d",5929:"afb107d6",6271:"51b5a57e",6365:"c648f275",6372:"c2378695",6440:"6d175597",6580:"9d4051dd",6969:"00347ef4",7098:"8794d1bc",7209:"e4dcaeff",7350:"400083d4",7472:"10db33a4",7643:"a3958393",7915:"3ea8b46c",8121:"c1ec56fd",8130:"ba989b8b",8133:"ddb2c881",8146:"024de278",8158:"848e6959",8177:"a8610025",8209:"5200d571",8401:"42d5ed25",8553:"dfe58b8e",8649:"4bfa6453",8691:"405f8d17",8913:"a77cc8d9",8947:"e6f6be2e",9048:"d90b76ed",9067:"b56915bc",9204:"c464cf32",9263:"47320509",9397:"bd750e75",9647:"4f997d54",9651:"c16406ad",9712:"26884892",9858:"9727f24b"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},r="new-docs:",d.l=(e,a,t,f)=>{if(c[e])c[e].push(a);else{var b,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var r=c[e];if(delete c[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/",d.gca=function(e){return e={17896441:"8401",68243087:"9397",b62caabb:"360","840797c7":"478","0058b4c6":"849",a7456010:"1235",acecf23e:"1903","35ee46b0":"1933","69aa9e93":"2272","6d18ad6b":"2301","9e4087bc":"2711","61d90f5f":"2866",ccc49370:"3249","13a1c259":"3484","726afaaf":"3789","0e384e19":"3976","92fa5ef1":"4044","621db11d":"4212",e511e452:"4413","1df93b7f":"4583","6875c492":"4813",df5a86e1:"5011",aba21aa0:"5742",f724a01c:"6271",c74dcec5:"6365","7e736cac":"6372","3828c8cd":"6440","0522e7aa":"6580","14eb3368":"6969",a7bd4aaa:"7098",f2e31a35:"7209","6878938b":"7350","814f3328":"7472",a6aa9e1f:"7643",c284b67b:"7915","3a2db09e":"8121",f81c1134:"8130","14a48451":"8133",c15d9823:"8146",e1902777:"8177","01a85c17":"8209","413466e5":"8649",ab461798:"8691",ef8b811a:"8947",a94703ab:"9048","5ad8d976":"9067",aa178e2b:"9204",d969d8ea:"9263","5e95c892":"9647","4f7497d7":"9651","1ba8abbb":"9712","36994c47":"9858"}[e]||e,d.p+d.u(e)},(()=>{var e={5354:0,1869:0};d.f.j=(a,t)=>{var c=d.o(e,a)?e[a]:void 0;if(0!==c)if(c)t.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var r=new Promise(((t,r)=>c=e[a]=[t,r]));t.push(c[2]=r);var f=d.p+d.u(a),b=new Error;d.l(f,(t=>{if(d.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var r=t&&("load"===t.type?"missing":t.type),f=t&&t.target&&t.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+f+")",b.name="ChunkLoadError",b.type=r,b.request=f,c[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,t)=>{var c,r,f=t[0],b=t[1],o=t[2],n=0;if(f.some((a=>0!==e[a]))){for(c in b)d.o(b,c)&&(d.m[c]=b[c]);if(o)var i=o(d)}for(a&&a(t);n Blog | LIPS Scheme - + diff --git a/blog/archive.html b/blog/archive.html index 367feeb4..aa3aa9e8 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -4,7 +4,7 @@ Archive | LIPS Scheme - + diff --git a/blog/authors.html b/blog/authors.html index 5366c438..2105d38c 100644 --- a/blog/authors.html +++ b/blog/authors.html @@ -4,7 +4,7 @@ Authors | LIPS Scheme - + diff --git a/blog/emacs-scheme-regex.html b/blog/emacs-scheme-regex.html index 89160780..2d18788d 100644 --- a/blog/emacs-scheme-regex.html +++ b/blog/emacs-scheme-regex.html @@ -4,7 +4,7 @@ Scheme Regex literals in Emacs | LIPS Scheme - + diff --git a/blog/lips-history.html b/blog/lips-history.html index dc75b7de..c5fc966d 100644 --- a/blog/lips-history.html +++ b/blog/lips-history.html @@ -4,7 +4,7 @@ LIPS Scheme History | LIPS Scheme - + diff --git a/blog/tags.html b/blog/tags.html index 25ff1365..d784b8cb 100644 --- a/blog/tags.html +++ b/blog/tags.html @@ -4,7 +4,7 @@ Tags | LIPS Scheme - + diff --git a/blog/tags/emacs.html b/blog/tags/emacs.html index b30810bf..ff8bd1bc 100644 --- a/blog/tags/emacs.html +++ b/blog/tags/emacs.html @@ -4,7 +4,7 @@ One post tagged with "emacs" | LIPS Scheme - + diff --git a/blog/tags/history.html b/blog/tags/history.html index 8b7a3407..b6fc5a6e 100644 --- a/blog/tags/history.html +++ b/blog/tags/history.html @@ -4,7 +4,7 @@ One post tagged with "history" | LIPS Scheme - + diff --git a/blog/tags/lips.html b/blog/tags/lips.html index 8de7354e..5691eac8 100644 --- a/blog/tags/lips.html +++ b/blog/tags/lips.html @@ -4,7 +4,7 @@ One post tagged with "lips" | LIPS Scheme - + diff --git a/blog/tags/scheme.html b/blog/tags/scheme.html index 404a369f..29309b4e 100644 --- a/blog/tags/scheme.html +++ b/blog/tags/scheme.html @@ -4,7 +4,7 @@ 2 posts tagged with "scheme" | LIPS Scheme - + diff --git a/docs/category/introduction-to-scheme.html b/docs/category/introduction-to-scheme.html index 67e0c2a9..cc9982b4 100644 --- a/docs/category/introduction-to-scheme.html +++ b/docs/category/introduction-to-scheme.html @@ -4,7 +4,7 @@ Introduction to Scheme | LIPS Scheme - + diff --git a/docs/category/lips-introduction.html b/docs/category/lips-introduction.html index 64526778..38bfd1e4 100644 --- a/docs/category/lips-introduction.html +++ b/docs/category/lips-introduction.html @@ -4,7 +4,7 @@ LIPS introduction | LIPS Scheme - + diff --git a/docs/intro.html b/docs/intro.html index 28dea211..8ab71c04 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -4,7 +4,7 @@ Getting Started | LIPS Scheme - + diff --git a/docs/lips/REPL.html b/docs/lips/REPL.html index 494c78ef..ad152fc4 100644 --- a/docs/lips/REPL.html +++ b/docs/lips/REPL.html @@ -4,7 +4,7 @@ REPL | LIPS Scheme - + diff --git a/docs/lips/SRFI.html b/docs/lips/SRFI.html index 03d18c4c..89dc63de 100644 --- a/docs/lips/SRFI.html +++ b/docs/lips/SRFI.html @@ -4,7 +4,7 @@ SRFI | LIPS Scheme - + diff --git a/docs/lips/embeding-repl.html b/docs/lips/embeding-repl.html index 430bea3c..6c9857a7 100644 --- a/docs/lips/embeding-repl.html +++ b/docs/lips/embeding-repl.html @@ -4,7 +4,7 @@ Embedding LIPS REPL | LIPS Scheme - + diff --git a/docs/lips/environments.html b/docs/lips/environments.html index 79c42709..1e46d8ee 100644 --- a/docs/lips/environments.html +++ b/docs/lips/environments.html @@ -4,7 +4,7 @@ Environments | LIPS Scheme - + diff --git a/docs/lips/extension.html b/docs/lips/extension.html index 962fa98b..6a12d41a 100644 --- a/docs/lips/extension.html +++ b/docs/lips/extension.html @@ -4,7 +4,7 @@ Extending LIPS | LIPS Scheme - + diff --git a/docs/lips/functional-helpers.html b/docs/lips/functional-helpers.html index 66fa821d..da88c838 100644 --- a/docs/lips/functional-helpers.html +++ b/docs/lips/functional-helpers.html @@ -4,7 +4,7 @@ Functional and other utils | LIPS Scheme - + diff --git a/docs/lips/intro.html b/docs/lips/intro.html index f57d995d..71105762 100644 --- a/docs/lips/intro.html +++ b/docs/lips/intro.html @@ -4,7 +4,7 @@ Core features | LIPS Scheme - + diff --git a/docs/lips/reflection.html b/docs/lips/reflection.html index 8c8a571f..089c05fc 100644 --- a/docs/lips/reflection.html +++ b/docs/lips/reflection.html @@ -4,7 +4,7 @@ Reflection | LIPS Scheme - + @@ -57,11 +57,10 @@

Lists and Pa

Strings

Same as with numbers and list you can access internals of Strings.

(let ((str "hello"))
-  (str.__string__.toUpperCase)
-  (set! str.__string__ "world")
-  str)
+  (str.__string__.toUpperCase))
+;; ==> "HELLO"
 
-

__string__ property is read only so you can't modify it's value:

+

__string__ property is read only so you can't modify its value:

(let ((str "hello"))
   (set! str.__string__ "world")
   str)
diff --git a/docs/lips/sxml.html b/docs/lips/sxml.html
index 36d39b77..32ba14d1 100644
--- a/docs/lips/sxml.html
+++ b/docs/lips/sxml.html
@@ -4,7 +4,7 @@
 
 
 SXML (e.g. for React) | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/continuations.html b/docs/scheme-intro/continuations.html
index bfb8be9a..71d493c6 100644
--- a/docs/scheme-intro/continuations.html
+++ b/docs/scheme-intro/continuations.html
@@ -4,7 +4,7 @@
 
 
 Continuations | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/core.html b/docs/scheme-intro/core.html
index bbb8d0d6..291ab187 100644
--- a/docs/scheme-intro/core.html
+++ b/docs/scheme-intro/core.html
@@ -4,7 +4,7 @@
 
 
 Core of Scheme | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/data-types.html b/docs/scheme-intro/data-types.html
index ff79b9eb..73bcbd47 100644
--- a/docs/scheme-intro/data-types.html
+++ b/docs/scheme-intro/data-types.html
@@ -4,7 +4,7 @@
 
 
 Data Types | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/input-output.html b/docs/scheme-intro/input-output.html
index 1fbb8a19..1e9ad099 100644
--- a/docs/scheme-intro/input-output.html
+++ b/docs/scheme-intro/input-output.html
@@ -4,7 +4,7 @@
 
 
 Input and Output | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/macros.html b/docs/scheme-intro/macros.html
index 7e2ad0be..edc8aa55 100644
--- a/docs/scheme-intro/macros.html
+++ b/docs/scheme-intro/macros.html
@@ -4,7 +4,7 @@
 
 
 Macros | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/next-step.html b/docs/scheme-intro/next-step.html
index 6134122d..5b9473c5 100644
--- a/docs/scheme-intro/next-step.html
+++ b/docs/scheme-intro/next-step.html
@@ -4,7 +4,7 @@
 
 
 What Next? | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/streams.html b/docs/scheme-intro/streams.html
index 133e52cc..982774b7 100644
--- a/docs/scheme-intro/streams.html
+++ b/docs/scheme-intro/streams.html
@@ -4,7 +4,7 @@
 
 
 Streams | LIPS Scheme
-
+
 
 
 
diff --git a/docs/scheme-intro/what-is-lisp.html b/docs/scheme-intro/what-is-lisp.html
index 4579a847..fa840105 100644
--- a/docs/scheme-intro/what-is-lisp.html
+++ b/docs/scheme-intro/what-is-lisp.html
@@ -4,7 +4,7 @@
 
 
 What is Lisp and Scheme? | LIPS Scheme
-
+
 
 
 
diff --git a/index.html b/index.html
index 556aa31a..c74b67c5 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
 
 
 Powerful Scheme interpreter in JavaScript | LIPS Scheme
-
+
 
 
 
diff --git a/reference.html b/reference.html
index 498c6ece..f65367cd 100644
--- a/reference.html
+++ b/reference.html
@@ -4,7 +4,7 @@
 
 
 Function and Macro Reference | LIPS Scheme
-
+
 
 
 
diff --git a/screenshooter.html b/screenshooter.html
index 5ad395a8..ebf24700 100644
--- a/screenshooter.html
+++ b/screenshooter.html
@@ -4,7 +4,7 @@
 
 
 Screenshooter | LIPS Scheme
-
+
 
 
 
diff --git a/sitemap.xml b/sitemap.xml
index 2294b25c..ffde8695 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-https://lips.js.org/blogweekly0.5https://lips.js.org/blog/archiveweekly0.5https://lips.js.org/blog/authorsweekly0.5https://lips.js.org/blog/emacs-scheme-regex2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/blog/lips-history2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/blog/tagsweekly0.5https://lips.js.org/blog/tags/emacsweekly0.5https://lips.js.org/blog/tags/historyweekly0.5https://lips.js.org/blog/tags/lipsweekly0.5https://lips.js.org/blog/tags/schemeweekly0.5https://lips.js.org/reference2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/screenshooter2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/category/introduction-to-schemeweekly0.5https://lips.js.org/docs/category/lips-introductionweekly0.5https://lips.js.org/docs/intro2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/embeding-repl2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/environments2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/extension2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/functional-helpers2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/intro2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/reflection2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/REPL2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/SRFI2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/lips/sxml2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/continuations2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/core2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/data-types2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/input-output2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/macros2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/next-step2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/streams2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/what-is-lisp2024-12-18T00:16:34.000Zweekly0.5https://lips.js.org/2024-12-18T00:16:34.000Zweekly0.5
\ No newline at end of file
+https://lips.js.org/blogweekly0.5https://lips.js.org/blog/archiveweekly0.5https://lips.js.org/blog/authorsweekly0.5https://lips.js.org/blog/emacs-scheme-regex2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/blog/lips-history2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/blog/tagsweekly0.5https://lips.js.org/blog/tags/emacsweekly0.5https://lips.js.org/blog/tags/historyweekly0.5https://lips.js.org/blog/tags/lipsweekly0.5https://lips.js.org/blog/tags/schemeweekly0.5https://lips.js.org/reference2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/screenshooter2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/category/introduction-to-schemeweekly0.5https://lips.js.org/docs/category/lips-introductionweekly0.5https://lips.js.org/docs/intro2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/embeding-repl2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/environments2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/extension2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/functional-helpers2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/intro2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/reflection2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/REPL2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/SRFI2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/lips/sxml2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/continuations2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/core2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/data-types2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/input-output2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/macros2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/next-step2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/streams2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/docs/scheme-intro/what-is-lisp2024-12-18T00:28:34.000Zweekly0.5https://lips.js.org/2024-12-18T00:28:34.000Zweekly0.5
\ No newline at end of file