No, it's just a gnarly little bug. To be useful, it would have to be consistent.
On Mon, Aug 15, 2016 at 12:38 PM, Raymond Pasco <r...@the.ug> wrote: > Are you sure @n and @f being pseudo-invalid pseudo-odors isn’t deliberate? > It’s a useful measure of type-safety that you can’t have `@n`3. >> On Aug 15, 2016, at 11:20 AM, Anton Dyudin <an...@tlon.io> wrote: >> >> iv) One of my "way too fancy to be practical rn" ideas is abbreviation of >> printed nouns via replacing sections with .^(... %gx /=dojo=/n), which could >> work on arbitrarily large nouns incl cores and such. Not much you can do if >> you have to render the whole noun in one go thought, yeah. >> >> v) I think you mean @dr, which would in fact be 2^-16 seconds. @t is text >> though, was the core error %bad-utf8? >> >> On Monday, 15 August 2016, Curtis Yarvin <cur...@tlon.io> wrote: >> Not at all, Zach, great questions. I have only one question in >> response (Customer Feedback Survey #42): which docs did you read in >> which order, and which helped the most? >> >> i) The pretty-printing of floats (and everything) is not in :dojo, but >> in hoon.hoon (++co) (specifically in r-co). Note that I didn't write >> the floating-point code -- it's a contributor's work (Max Greer). >> >> ii) In older versions of Hoon there was no constraint on equality >> testing, because you can test any two nouns for equality. This was >> only one of many things in Hoon that horrified people with a >> traditional typed FP background. In this case I decided that the >> traditionalists were right, because I have seen this check turn up >> bugs. On the other hand, most other people who know Hoon are a little >> horrified by most of my recent changes, so it could be that I'm just >> losing my mojo. In any case, equality testing requires one side of >> the test to be a subtype of the other (nest within it). >> >> iii) A core contains compiled Hoon code in Nock form. An invertible >> printer would have to decompile it, or something -- basically >> impossible. You've lost informatoion. >> >> iv) Ha! This is a bug (if a small one). Do you want to file it? >> You'll get valuable Bug Points which may in future be exchangeable for >> exciting action figures. >> >> v) This is because (a) we can't statically verify auras (for obvious >> reasons, since Hoon is not Coq), and (b) we don't in practice check >> them adequately before feeding them to the console, resulting in wacky >> formatting for invalid strings (another small bug). >> >> vi) One, Hoon can't actually validate that a mold is idempotent >> (because not Coq). Two, ;; doesn't normalize; if (mold a) doesn't >> equal a, it crashes. There are cases where normalization is good >> practice, but they tend to be the exception, even though defining >> molds as normalizers is a good design. For instance, in networking, >> Urbit has definitely moved away from Postel's law, which seems to be a >> lot less relevant when you have, like, types and stuff. >> >> vii) There isn't but that's a great idea (thanks ghci). There is >> history with a kill buffer, though, so ^P^A^K^N^Y will do the same >> thing. I'd have to think about how to fit this into the dojo, though, >> it's non-obvious. >> >> viii) The "type" output in the prettyprinter is its own thing -- it is >> not either a mold or a span, just a thing derived from inspecting the >> span. See under "not invertible." In this case, we see that your >> structure is a repeating structure of the form {i/item t/tail}, which >> happens to be what ++list makes, so we're basically saying it's a >> list. If you make this same span with any other mold, though, you'll >> get the same results -- all typing in Hoon is structural. >> >> >> >> >> >> On Mon, Aug 15, 2016 at 6:13 AM, Zach Gotsch <orbipe...@gmail.com> wrote: >> > Hey I was looking at some of the Hoon resources this weekend and I had a >> > few >> > questions and things I didn't understand. I hope this is an appropriate >> > place for my questions. >> > >> > i) >> > There seems to be some sort of output formatting for floats, since >> > >> >> (add:rs .0.1 .0.2) >> > .3e-1 >> > >> > but >> > >> >> (add:rd .~0.1 .~0.2) >> > .~3.0000000000000004e-1 >> > >> > Where can I see how the pretty-printing in dojo is happening (if that's >> > even >> > what this is...)? >> > >> > ii) >> > I don't think I understand how constant nouns (rocks?) are represented. >> > %a has aura (mold? not sure of the difference here either) $a, but the raw >> > value 97 >> > %97 also has raw value 97, but aura $97 >> > >> > I would expect =(%a %97) to be .y, since I don't expect the types to have >> > any bearing on equality testing. Instead it is an error. I guess my main >> > question here is "When do types (er, auras?) matter?" Something like (add >> > %97 1) doesn't cause an error, and produces 98, which I expect if add >> > doesn't care about types. Side note, casting the rocks seems to prevent the >> > error and I get the behavior I expect: >> > >> >> =(`@ud`%a `@ud`%97) >> > >> > %.y >> > >> > >> > iii) >> > From the docs: "When we print b, or any core, we see that typed noun >> > printing can't be an invertible function in Hoon". I don't understand why >> > it's not invertable. Is it because the battery is Nock, and you can't enter >> > nock code in Hoon? >> > >> > iv) >> > @n seems to be a thing but I can't use it at the prompt without causing an >> > error. Is this like undefined/bottom in haskell? >> > >> > v) >> > I was messing around with auras and I was wondering if `@tr`1 was something >> > like ~s1 (or milliseconds or microseconds). When I typed it into dojo, it >> > printed all sorts of stuff and overwrote the prompt. What is the stuff that >> > it prints and why does this happen? (After typing this out, I realized that >> > it's a runtime error of some kind. Where can I learn how to interpret the >> > printed stuff?) >> > >> > vi) >> > In the documentation, it says ;; applies a mold, asserting fixed point. All >> > molds should have fixed points for all inputs because they are idempotent, >> > right? So is this just a function application of the mold and an assertion >> > that it is, in fact idempotent? >> > >> > vii) >> > Is there a way to refer to the last twig in the dojo prompt (like `it` in >> > ghci)? >> > >> > viii) >> > When I do: >> > >> >> ? (gulf `@u`0 `@u`5) >> > it(@) >> > ~[0 1 2 3 4 5] >> > >> > I don't understand the type of gulf's output, it isn't a cell, and I >> > haven't >> > seen `it(@)`. Does `it` mean "iterated". Is `@` a type parameter here? >> > >> > >> > I hope this wasn't too much for the mailing list but since the network is >> > down I haven't been able to bother people on :talk >> > >> > Zach >> > >> > >> > >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "urbit" group. >> > To unsubscribe from this group and stop receiving emails from it, send an >> > email to urbit-dev+unsubscr...@googlegroups.com. >> > To post to this group, send email to urbit-dev@googlegroups.com. >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "urbit" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to urbit-dev+unsubscr...@googlegroups.com. >> To post to this group, send email to urbit-dev@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "urbit" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to urbit-dev+unsubscr...@googlegroups.com. >> To post to this group, send email to urbit-dev@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "urbit" group. To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+unsubscr...@googlegroups.com. To post to this group, send email to urbit-dev@googlegroups.com. For more options, visit https://groups.google.com/d/optout.