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.
smime.p7s
Description: S/MIME cryptographic signature