Talk:Frame agreement

From APL Wiki
Jump to navigation Jump to search

Intentional rollback?

Was the rollback at 20:57, 8 July 2023‎ really intentional. At a glance, the older version seems nicer. Adám Brudzewsky 01:14, 9 July 2023 (UTC)

I had temporarily rolled back that edit because, in it, I had inadvertently replaced some of Marshall's edits. Nicer version is now back with relevant edits included. ⊂⍺m (talk) 23:32, 9 July 2023 (UTC)

Some thoughts on frame agreement vs. prefix agreement

Just thought I'd offer some thoughts for potential discussion here.

To Marshall: I'm wondering about the motivation for removing the line comparing frame agreement with the scalar-dyadic "leading axis agreement" shared among BQN and J. Personally I naively misunderstood the leading axis agreement page to be showing how J's general frame agreement works. That page does clearly state that LA applies only to scalar dyadic functions, but this alone doesn't make it clear that J has a more general conformance rule. I realized my mistake only upon encountering an example that would've produced a length error in BQN, but gave a result in J (if I recall correctly). I'm thinking this will be a common issue for others as well.

As such, my motivations for creating a separate frame agreement page were 1.) to disambiguate between the two conformance rules, making it clear that J has a conformance rule that extends beyond scalar dyadic functions, and 2.) to explain J's agreement rules more clearly and simply than the NuVoc page does.

Any general objections to linking from the FA page to the LA page, and vice versa? Or anything particular that you’re thinking may not be so good about stating "frame agreement generalizes prefix agreement," with a link there? ⊂⍺m (talk) 00:36, 10 July 2023 (UTC)

Which line, "It is more general than Prefix agreement, which applies only to scalar functions"? I don't think I removed that, and history shows it appearing only after my last edit. Also, I believe BQN's conformability rule for the rank operator is identical to J's. It matches what's described in this page at least. The difference is only that J has function rank, so rank is built into some primitives.
I've felt a little weird about this page, and I think the reason is that it ties together the things that are subject to agreement (frames) with how they agree (prefixes) even though they're independent. SHARP has function rank just like J, but based on SAX documentation it only ever had empty-frame agreement and not leading-axis. The title could be made more specific, but my preference would be to make this page on frame conformability generally and indicate that the examples use a specific kind. Fine with linking to and from leading-axis pages regardless of the decision here. --Marshall (talk) 17:25, 11 July 2023 (UTC)
Yes, my mistake, I'll try to be more careful about checking the edit history. Oh, I didn't realize BQN did this for rank-derived functions.
Hmm, ok, I see what you mean. Agreed—modifying the page to be on general frame conformability, with e.g. "empty frame agreement" and "general frame agreement" sections, is more coherent. ⊂⍺m (talk) 14:45, 12 July 2023 (UTC)