Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 22:32
    dm9pZCAq starred gilch/hissp
  • 02:17

    gilch on master

    fix inconsistent comment style add namespace output to munging… factor out QUOTEZ format string and 7 more (compare)

  • 02:17
    gilch closed #111
  • 02:16
    gilch opened #111
  • 02:15

    gilch on restyle

    change MAYBE value again So it… (compare)

  • Sep 24 03:34

    gilch on restyle

    fix inconsistent comment style add namespace output to munging… factor out QUOTEZ format string and 5 more (compare)

  • Sep 22 01:13
    bhougland18 starred gilch/hissp
  • Sep 20 04:42

    gilch on plainly-tutorial

    (compare)

  • Sep 20 04:42

    gilch on master

    clarify escape sequences split off Unicode Normalization… clarify string reading with int… and 10 more (compare)

  • Sep 20 04:42
    gilch closed #108
  • Sep 20 04:31
    gilch opened #108
  • Sep 20 04:28

    gilch on plainly-tutorial

    move unicode normalization sect… (compare)

  • Sep 20 04:23

    gilch on plainly-tutorial

    clarify escape sequences split off Unicode Normalization… clarify string reading with int… and 8 more (compare)

  • Sep 19 00:37

    gilch on master

    add more functional library rec… clarify install instructions word as single and paired for c… and 9 more (compare)

  • Sep 19 00:37
    gilch closed #107
  • Sep 19 00:37
    gilch commented #107
  • Sep 19 00:36
    gilch opened #107
  • Sep 19 00:35

    gilch on fun-faqs

    activate readline for LisspREPL revise and add more to FAQ (compare)

  • Sep 18 03:42

    gilch on fun-faqs

    mention more bytes reader macros split ready from stable move sidebar back in real order… (compare)

  • Sep 18 00:21
    HoangTuan110 starred gilch/hissp
Mike Pelletier
@salixbipedis:matrix.org
[m]
I've been offline for ten years, is Tim Peters still a thing?
gilch
@gilch
Did the Reddit post actually mention Hissp, or did you go looking for other Lisps on your own?
@mgrasko had mentioned earlier that "there is really no exposure" (for Hissp) so I'm always interested in how people are finding it.
Mike Pelletier
@salixbipedis:matrix.org
[m]
Well, I was aware of Hy but my ideas about it were quite dated. I was surprised to see how it had developed. The Hy docs reference Hissp, so I decided I would try to get my head around the differences by implementing a simple app in each.
Mike Pelletier
@salixbipedis:matrix.org
[m]
...I went digging for something to satisfy my raging clue for a proper Python Lisp experience. Sucks that Pixie's JIT tech is bit rotting away!
I read that
gilch
@gilch
Although even that might be getting dated, since Hy has been changing again lately.
Mike Pelletier
@salixbipedis:matrix.org
[m]
But Hy itself has moved on so far from where I knew it that the comparisons are not super useful, I'm starting out from zero
Ha ha
I was surprised to see they have 1.0 alpha! Congrats, Hy!
I haven't started digging into that half yet
Mike Pelletier
@salixbipedis:matrix.org
[m]
Oops, formatting sorry

I don't understand this output:

#> (list '("a string" "another string"))
>>> list(
...   ("('a string')", "('another string')"))
["('a string')", "('another string')"]

I'm expecting a result like this one:

#> (let (l (list)) (.append l "a string") (.append l "another string") l)
>>> # let
... (lambda l=list():(
...   l.append(
...     ('a string')),
...   l.append(
...     ('another string')),
...   l)[-1])()
['a string', 'another string']
#>

Is it me or Hissp that is crazy?

salt rock lamp
@elementio:salt-rock-lamp.ems.host
[m]
i dont understand hissp single-quote either
i would have expected the same
alternatively one might expect ['"a string"', '"another string"']
Mike Pelletier
@salixbipedis:matrix.org
[m]
I'll go read the quoting docs again
Mike Pelletier
@salixbipedis:matrix.org
[m]
Naively what I thought was happening was that "a string" was rendering to ('a string') which then got quoted a second time by the quote special form, transforming it into "('a string')" which doesn't seem intentional?
Hmm, I guess I see this behaviour in lissp_quickstart.rst so I suppose it's intentional. I think I'm meant to use the [] reader macro or (enlist ...)
gilch
@gilch
Other objects evaluate to themselves, but strings and tuples have special evaluation rules in Hissp. Tuples represent Hissp code and strings represent Python code (plus module literals).
You might have been trying to do this:
#> (list '(.#"a string" .#"another string"))
>>> list(
...   ('a string', 'another string'))
['a string', 'another string']
Mike Pelletier
@salixbipedis:matrix.org
[m]
Thanks. That is what I need to understand.
I'll look into why I need to use code injection there
gilch
@gilch
In Lissp, the "..." read syntax creates the Python code for a string.
So at the Hissp level, it becomes "('...')".
If you want to inject a string directly to the Hissp level, you use .#.
Mike Pelletier
@salixbipedis:matrix.org
[m]
Whereas .#"..." does not become a bare ellipsis, nor a string?
I get the voodoo now I just don't get how it works, but I can figure that out
gilch
@gilch
It might help to play around with readerless mode in Python.
salixbipedis
@salixbipedis:matrix.org
[m]
lissp renders to a tree of tuples containing tuples and strings so it does make sense that it chokes on the thing I made, I'm having trouble figuring out exactly how .# fixes it. I'll go play with readerless.
gilch
@gilch
#> ...
>>> ...
Ellipsis
#> .#"..."
>>> ...
Ellipsis
#> '.#"..."
>>> '...'
'...'
Mike Pelletier
@salixbipedis:matrix.org
[m]
aaahhh okay
so from another perspective I'm basically removing one level of quoting which is exactly what I want
----------------------------------------------------------------------
Ran 1 test in 0.002s

OK
Thanks! :-D
gilch
@gilch
#> '(list '("a string" "another string"))
>>> ('list', ('quote', ("('a string')", "('another string')")))
('list', ('quote', ("('a string')", "('another string')")))
#> '(list '(.#"a string" .#"another string"))
>>> ('list', ('quote', ('a string', 'another string')))
('list', ('quote', ('a string', 'another string')))
#> '"..."
>>> "('...')"
"('...')"
#> '.#"..."
>>> '...'
'...'
#> ''.#"..."
>>> ('quote', '...')
('quote', '...')
salt rock lamp
@elementio:salt-rock-lamp.ems.host
[m]
why is it represented as "('a string')" in python and not e.g. '"a string"'?
gilch
@gilch
The compiler does do a little bit of preprocessing when it evaluates strings, to make the module literals work, but it skips that step if it detects parentheses.
#> .#"'math..tau'"
>>> __import__("'math").tau'
  File "<console>", line 1
    __import__("'math").tau'
                            ^
SyntaxError: EOL while scanning string literal
#> .#"('math..tau')"
>>> ('math..tau')
'math..tau'
gilch
@gilch
I originally had the "..." Lissp read syntax evaluate to ('quote','...'), which still works in readerless mode, but realized I could simplify it after implementing strings in Hebigo. I wanted Lissp and Hebigo to work the same way for better compatibility, and it was easier to make them both work Hebigo's way, so here we are.
A space also works:
#> .#"'math..tau' "
>>> 'math..tau'
'math..tau'
Mike Pelletier
@salixbipedis:matrix.org
[m]
I haven't looked at Hebigo because s-expressions are important to the pleasant feelings lisp gives me. Should I?
Mike Pelletier
@salixbipedis:matrix.org
[m]
Might as well implement my program a third time and find out
Mike Pelletier
@salixbipedis:matrix.org
[m]
(.bar foo baz) and (foo.bar baz) compile to the same thing. Is one to be preferred in any context?
Mike Pelletier
@salixbipedis:matrix.org
[m]
Feels like a style issue but the guide doesn't mention it
gilch
@gilch
(foo.bar ...) can only work if both foo and bar are symbols. (.bar foo ...) works even if you replace foo with a non-symbol expression.
E.g. (.upper "shout!") works, but ("shout".upper) is a syntax error.