« first day (1841 days earlier)      last day (816 days later) » 

9:16 AM
Great video :)
 
Thanks!
 
 
1 hour later…
10:48 AM
@Adám You missed out @Razetime's enterprise solution :)
Cool that such a simple task yielded such range of solutions.
What's up for next session, 2013-2 or 2014-1?
 
2013-2
 
another odd numbers solution i just thought of - {(⍳⍵)+(⎕IO←0)⊢⍳⍵} in ⎕IO←1
 
Ew.
 
doesn't appear to be much good though
 
I think (1+⊢)\⍳ is my favourite, wish I had thought of it during the event
 
11:25 AM
@FawnLocke Yeah, that's clever. Took me a second to wrap my head around it.
 
11:35 AM
@Adám I just did problems.tryapl.org 2017 problem 10, and when you get the correct answer, there's a sequence of numbers to the left of the congratulatory message. It says:

5 10 1 0 17 7 1 4 2 Passed all basic and edge cases – good job!
 
is there a Dyalog APL highlight.js plugin
 
@Adám i would like to see what output my program gives for the test case it fails on in problems.tryapl.org
 
@PyGamer0 The test cases are available in the github repo.
 
11:54 AM
@PyGamer0 But you can just run it somewhere else using the given test case, no?
@Razetime Not that I know of.
 
Something is wrong with my mental model of how scan works. Even with a really simple case, I don't quite understand what is going on here:
 
@taronish I can't repro. What's your solution?
 
One moment ...
 
@taronish For vectors, scan is f/¨(⍳≢⍵)↑¨⊂⍵
 
@Adám I'm sorry to say, it looks like was a transient issue. After trying it again, it doesn't emit the line of numbers ... not sure why.
@Adám Ok, let me play with this a bit ...
 
12:01 PM
Scan is reductions of the prefixes - which is both weird and fun
i.e (+\1 2 3) ≡ +/¨(1)(1 2)(1 2 3)
 
In clojure, we have something similar to scan, which is called reductions. But in this particular example, when I'm trying to use it to solve a problem, I can't explain why the following:
>\5 5 2
Is equal to 5 0 1.
But ... I will try to decrypt it with Adám's version above.
 
The first element is >/5 which is 5 because reducing a scalar or 1-element vector does nothing.
 
Yeah, the first element makes sense.
But then 5>5 = 0 ..
But then 0 > 2 ?
That makes sense.
 
Where did the two 5s come from?
 
I assumed that that was the next step in the reduction (since 5 was the first value?)
 
12:04 PM
Sorry, I misread.
 
@Adám sounds like free real estate
 
⋄ 5 (2 > 5) (5 > 5 > 2)
 
@FawnLocke 5 0 1
 
@taronish no, it is 5> 5>2
 
It's reverse order
The reduction is foldr1 so
 
12:06 PM
I'm so confused. I know reduce is foldr in APL, but with scan, when trying to understand it, I did simple things like:
 
Or wait, I think I've confused myself now
 
,\5 5 2
And when examining that output, it doesn't look like it's going right to left.
 
@taronish That's because the order of application for , doesn't matter.
Use ⎕←{⍺⍵}\5 5 2
 
@Adám
┌─┬───┬───────┐
│5│5 5│┌─┬───┐│
│ │   ││5│5 2││
│ │   │└─┴───┘│
└─┴───┴───────┘
 
I read it wrong oops. 5 (5 > 5) (5 > 5 > 2)
 
12:07 PM
Now you can clearly see that for the last step, 5{⍺⍵}2 happens first
 
I have to work on this some more. I'm not seeing it.
My attempts like this aren't helping:
{⎕←⍺ ⍵ (⍺>⍵)⋄⍺>⍵}\5 5 2
Which comparison results in the 0 in the middle of the result 5 0 1 ?
 
5>5
 
Why is there a 5>5 there if we're going from right to left, and the previous result was 1 (due to 5 > 2 ==> 1) ?
 
⋄ {(⍺>⍵),'|'⍺'>'⍵}\5 5 2
 
@PyGamer0 (1 trailing line)
DOMAIN ERROR
      {(⍺>⍵),'|'⍺'>'⍵}\5 5 2

␄
 
12:14 PM
In other words, I would have expected that the next step would be ...
5 > 1
(Since I assumed the right hand argument is the result of the previous iteration)
 
@taronish Wrong assumption.
 
@Adám Story of my life with APL ;)
 
Scan starts over on each prefix.
 
(f\X Y Z) ≡ X (X f Y) (X f Y f Z)

And then it's RTL execution as normal, I think that's the *entire* model. It's a simple primitive, but hard to understand intuitively

5 > 5 > 2

1. 5 → 5
2. 5 > 5 → 0
3. 5 > (5 > 2) → 1
 
>\5 5 2
(>/5) (>/5 5) (>/5 5 2)
(5)   (5 > 5) (5 > 5 > 2)
(5)   (5 > 5) (5 > 1)
(5)   (5 > 5) (1)
(5)   (0)     (1)
5 0 1
@taronish Does ^ help?
 
12:18 PM
@Adám Yes, that makes it explicitly clear. I just have to wrap my head around it. Thank you and @FawnLocke as well for helping me walk through it. I'll work on it a bit more and hopefully internalize this.
 
One of my favourite scans: ⋄ ⊢∘⌽∘(+\)\10⍴⊂1 0
 
@FawnLocke
┌───┬───┬───┬───┬───┬───┬────┬─────┬─────┬─────┐
│1 0│1 1│2 1│3 2│5 3│8 5│13 8│21 13│34 21│55 34│
└───┴───┴───┴───┴───┴───┴────┴─────┴─────┴─────┘
 
You'd be justified in calling that "The Golden Scan".
 
Heh
 
The results of scan seem so obvious with +, and much less obvious to me in many of these other cases. I'm going to have to figure out how to get an intuitive grasp on it so I can solve problems with it.
 
12:24 PM
@taronish >\ is especially confusing. Try to understand -\ first.
 
@taronish APL's scan for things other than idioms is fun, but that's about all it has going for it. Definitely not a thing to really solve problems with, unless you're golfing
 
@Adám I can work through it step by step ... and it makes sense, as long as I group things into all of those prefixes ...
 
Yeah
 
(here, "idioms" means idiomatic code — which happens to be optimised internally)
 
@dzaima Yes, I'm sure I don't have a sense yet of when to use it. This came up in the context of (tryapl) APL problem 2018 #1, where you're computing which skyscrapers you can see. So what I was trying to do was go over the list and find the places in the list where the value increased ...
But it didn't do quite what I expected and then I got sidetracked.
 
12:31 PM
is there an equivilant to idomatic code in other languages like python or javascript? or even C or Go?
 
for practical purposes, >\ is a single builtin
 
… for booleans.
@dzaima In fact, in A+, it is.
 
It's especially fun for non-associative functions and functions that negate their own properties i.e -- f or ~~f
@BrianBED In python idiomatic is a somewhat common idea, but I don't think it's really equivalent to APL's idioms
 
@Adám Nice! Going to explore some more solutions for the next one already.
 
So I guess maybe I'm getting extra confused by scan when I'm scanning using a non-commutative function.
 
12:34 PM
(also, >\ and not <\?)
 
i dont even know what it'd mean in python... like idk what it'd mean there...
wait ok i googled... the definition isn't precise... "Pertaining or conforming to the natural mode of expression of a language"
 
@dzaima Well, it is, but only <\ tends to be useful.
 
It's often used to refer to bad/good practices. Not so much short and expressive functions - like they are in APL
 
ah ok. very interesting
 
You may see someone say "using eval() isn't idiomatic." meaning it's a bad practice. In APL we use both "idiomatic", to mean the same as Pythoners and "idioms" to refer to short functions composing something more meaningful.
Anyway
 
12:41 PM
And unfortunately, in Dyalog, we also use "idioms" to mean phrases that are tokenised as a single token (so that a special optimisation may be used).
 
12:58 PM
@Adám what is this "special optimization"?
 
What does it mean in dyalog when a matrix is displayed with a little "+" in the lower left, when boxing is enabled? (currently with style=max)
 
E.g. for ≢⍴ we don't actually separate out the shape into a pocket, then count its elements; we just look directly at the internal rank info.
 
@taronish It means the data is mixed type
 
@FawnLocke Ok, thanks.
I'm working on (tryapl) problem 2018 #3 ... I understand the concept, but I'm at bit of a loss for how to produce the exact output the system is looking for.
My best effort is:
{⎕IO←0⋄⍕{⍺ ((≢⍵)⍴'*')}⌸,⊃∘.+/1+⍳¨⍵}
But that differs by minor spacing and by the mixed array vs non-mixed array.
What is the intended way (maybe just a way I've written the left parameter of key incorrectly?) to get exactly the output that is desired?
 
@taronish Just don't
 
1:09 PM
That gets a similar error, though ... so it still isn't correct.
(that's what I had arrived at before trying my hand at ⍕)
{⎕IO←0⋄' '@{⍵=0}{⍺,((≢⍵)⍴'*')}⌸,⊃∘.+/1+⍳¨⍵} passes basic tests.
(Using , inside the function passed to key means it filled empty spots with 0 ... which is why I used @ ...)
 
@taronish The reference solution (or the comparison normalisation, iirc) is wrong.
 
Ok, that's a relief, because my solutions are collapsing under their own uglyness as I try to make them pass the test.
 
@taronish Btw, why ⎕IO←1 only to do 1+⍳ later?
 
@Adám I just write my solutions using IO == 0 typically, and so when I paste them I often add the explicit specification of IO like that ...
 
Ah. That's fair.
 
1:15 PM
But you're right that if I had just used IO 1, I wouldn't have had to monkey with the output of iota.
 
Hm, now I wonder if I should add another test case there, which many solutions probably would fail on…
 
@Adám What sort of test case?
 
16⍴2 i.e. 16 coins.
 
1:28 PM
Interesting ...
So is 15 the max (allowed) rank?
 
1:45 PM
Yes.
 
1:57 PM
why isnt (2 2⍴4)⍴⍳10 possible?
 
Because the left argument of is a shape. A shape has to be a vector (although we allow a scalar instead of a 1-element vector).
Another way to look at it: The left argument of has to be a possible result of monadic . What array A would have ⍴A give 2 2⍴4?
 
4 4 ⍴ 0 1 2 3 4 5 6 7 8 9
4 4
this is what this is expressing just to clarify
 
@BrianBED yes
 
@PyGamer0 So you understand why it can't work?
 
no,why cant the left argument be a matrix?
 
2:04 PM
Because that would mean that there exists an array for which the shape is a matrix.
 
@PyGamer0 What would the rows of the matrix indicate?
 
uh like you express the dimention you wanna grow in. if you wanna space out into 4 dimentions you wanna do: 4 4 4 4 and not
4 4
4 4
 
@Adám oh
i wonder what would happen if there existed a matrix whose shape is another matrix
 
It wouldn't be a matrix, because the definition of a matrix is that its shape is a 2-element vector.
Actually, now I think about it, many popular programming languages "restrict" "" to a scalar left argument, i.e. they can only express/handle/manipulate lists of lists of lists… APL expands this so can take a vector left argument, giving us multi-dimensional arrays. Maybe it would be possible to have a programming language that expands to matrix left arguments, giving access to hyper-dimensional arrays?
 
or expanding it to any rank arrays
 
2:08 PM
That's very esoteric, but interesting
 
^
 
hyperⁿdimensional arrays would be the generalisation of scalar of scalars, lists of lists, multi-dimensional arrays of multi-dimensional arrays, etc.
 
how would such arrays look like?
 
@PyGamer0 How does a 4D array look?
 
@Adám a shelf of books
(well i am using your visualization)
 
2:11 PM
Right, while people are sometimes impressed by APLers' ability to imagine multi-dimensional arrays, I can't visualise hyper-dimensional arrays at all.
 
we need hyper beings like hyper-neutrino to visual them :p
 
Not sure.
 
2:51 PM
github.com/adambard/learnxinyminutes-docs idea: APL document for this site
 
oh i see
hm. worth extending the noodl one then?
 
Yup, just haven't gotten around to it, but by all means, fork and extend and PR!
 
well I'll keep it in my to-dos
writing learning material is so hard
 
I'll fork now whilst I'm free
 
3:41 PM
@Adám time to add a new feature to apl! :D
 
@BrianBED Uhm, uhm, but, but, how would it work? Can you write a model for the extended
 
sounds like fun
so like you could make it like... yknow how multidimentional arrays are displayed by listing the array... wait let me visualize
(⎕←2 2 2 2⍴0)
 
@BrianBED
0 0
0 0

0 0
0 0


0 0
0 0

0 0
0 0
 
so like you see how there are diffrent amount of spaces going downwards?
imagine that but being allowed to display sideways aswell?
 
Yes?
 
3:48 PM
so
2 2 ⍴ 0
2 2

would be:

0 0 0 0
0 0 0 0

0 0 0 0
0 0 0 0



0 0 0 0
0 0 0 0

0 0 0 0
0 0 0 0
thats how i imagine it anyway... seems too... not mathamatical
 
⋄ 2 2 2 4⍴0
 
@RikedyP
0 0 0 0
0 0 0 0

0 0 0 0
0 0 0 0


0 0 0 0
0 0 0 0

0 0 0 0
0 0 0 0
 
wat
lmao
oh wait no i meant to add 2 spaces between the arrays
 
oh okay - but still the ambiguity is my point
 
yes definetly
there should be a mathamatical way to do it tho... maybe... ill think about it
 
3:52 PM
⋄ ⍕(2 2 2⍴0)(2 2 2⍴0)
 
@RikedyP
 0 0  0 0
 0 0  0 0

 0 0  0 0
 0 0  0 0
 
@BrianBED that's completely a formatting thing
 
closer?
 
@dzaima yea ik. i said that's how i imagine it. ofcorse idk how useful it'd be but theoretically the way symbols work on them would be diffrent... doesnt make sense yet
 
for example, dzaima/BQN formats a regular rank 4 like this
 
3:54 PM
Shame this isn't allowed:
      (⊣/m)←0
SYNTAX ERROR
      (⊣/m)←0
 
@BrianBED it wouldn't make much sense to completely utterly redesign the whole array model and every operation on it for just formatting, is my point
 
@xpqz Yeah, we should add that.
 
yea definetly. it should have some kind of use. tho maybe you don't need to redisign everything. maybe it'd just be some kind of imaginary number math somehow ¯\_(ツ)_/¯

wait does APL support quaternions?
 
NARS2000 does
 
hm no idea what nars2000 is
 
3:57 PM
I guess a nested left arg could provide outer, overall, shape and shape of each element, so (2 3)(2 5)⍴⍳60 would do ⋄ a←2 3⍴⊂2 5⍴0 ⋄ (∊a)←⍳60 ⋄ a
 
@Adám
┌──────────────┬──────────────┬──────────────┐
│1 2 3 4  5    │11 12 13 14 15│21 22 23 24 25│
│6 7 8 9 10    │16 17 18 19 20│26 27 28 29 30│
├──────────────┼──────────────┼──────────────┤
│31 32 33 34 35│41 42 43 44 45│51 52 53 54 55│
│36 37 38 39 40│46 47 48 49 50│56 57 58 59 60│
└──────────────┴──────────────┴──────────────┘
 
And a nested 3-element left arg would add shape to the elements of the elements.
 
@BrianBED nars2000.org
 
@dzaima (NARS2000 even has octonions)
 
:OOOO
 
3:59 PM
@BrianBED Whenever you have no idea what some APL-related thing is, see APL Wiki, for instance apl.wiki/NARS2000
 
ye ye i just don't google sometimes
 
@dzaima (those octonions can then be made of 64-bit integers, 64-bit floats, multiple-precision floats, and arbitrary-precision rationals)
 
4:33 PM
I'll continue this later. Suggestions welcome
 
@FawnLocke Typo: {(+/⍵)÷⍴⍵} should be {(+/⍵)÷≢⍵}
 
Thanks. I also spotted the ⎕IO mistake (reshape section)
 
i wish monadic rho saw some more love
but every time i need something like this i use the shish kebab instead
 
It used to see too much love.
 
@FawnLocke I'd say "All functions can be called either with a single argument (monadically), or two arguments (dyadically)" as not all functions have both meanings (if errors are excluded from being a "meaning"); bad comma in "Scalars, have"; unmatched quotes in "⍳n'
 
4:42 PM
Thank you
 
Can anyone offer a slick way of setting the first and last element of a boolean vector to 1?
 
@xpqz 1@0⍤⌽⍣2
 
This is too ugly: v[0,¯1+≢v]←1
@Adám ooo
 
1⍨⍢(⊣/,⊢/) :-)
 
@Adám That qualifies as slick. When can we have under?
 
4:47 PM
When we get an in-house programmer that can implement it.
@xpqz (2↑¯1⌽v)←1
That's even ⎕IO-agnostic.
 
^ this might make a good APL Quest task (if there wasn't 50 of them in the queue already)
 
@xpqz (⍷⍨∨⌽)⍣2 or (⍷∨⊢∨⌽⍤⍷)⍨ or ⍷⍨∨⊢∨⌽⍤⍷⍨
@xpqz ⊢∨∨∘⌽⍨⍤⍷⍨
 
Funny how the Under one looks really clear.
 
1¨⌾(0‿¯1⊸⊏) in BQN
 
I'll be proposing monadic for "Last", and I think should be able to take a constant left operand (like @) so we should be able to write 1⍢(⊃,⊇)
@dzaima Why do you need ¨?
 
4:57 PM
@Adám because otherwise 1 0‿¯1⊸⊏ ≡ 1⌾(0‿¯1⊸⊏) wouldn't hold
 
Hm, ok.
 
should 1⌾⊑ ⟨1‿2‿3 ⋄ 4‿5‿6⟩ give ⟨1‿1‿1 ⋄ 4‿5‿6⟩ or ⟨1 ⋄ 4‿5‿6⟩?
 
The latter, imo.
 
well, that'd be inconsistent with the extension in 1⌾(0‿¯1⊸⊏)
 
I don't think so.
(0‿¯1⊸⊏y)↩1 should work, no?
 
5:02 PM
@Adám I remember having discussions about how assignment sometimes having and sometimes not having implicit each is bad
@Adám you have to decide whether or not to scalar extend somewhere. For both cases, the input to the left operand is an array of numbers, so you can't decide anything based on that. So you have to decide it per function in the right operand
      a←⍳¨⍳4 ⋄ (⊃a)←1 2 ⋄ a
┌───┬───┬─────┬───────┐
│1 2│1 2│1 2 3│1 2 3 4│
└───┴───┴─────┴───────┘
      a←⍳¨⍳4 ⋄ (1↑⊃a)←1 2 ⋄ a ⍝ 1↑ is a noop as `⊃a` already has length 1
LENGTH ERROR
      a←⍳¨⍳4 ⋄ (1↑⊃a)←1 2 ⋄ a
                     ∧
 
@Adám maybe too narrow a usecase, but (⍷⍨∨⌽)⍣2 could go in APLCart (it does what I expect for an empty array to the right, too)?
 
 
1 hour later…
6:35 PM
@xpqz It doesn't but it has interesting effects on high-rank arguments.
 
 
1 hour later…
8:03 PM
Hi all. The main project I'm working on presently is very statistics oriented. As such, plotting becomes important. The ]plot command is pretty limited and I don't see a way to use it from within a function. It appears that SharpPlot is not available for macos. I got pynapl to try to use matplotlib from python. pynapl seems to work, but I'm having difficulty figuring out how to get it to work with apl data.
 
@bwanab SharpPlot should work just fine under macOS.
 
@Adám Thanks. I'll give it a shot!
 
Have you had a look at the two plotting cultivations?
 
@Adám I haven't. I'd been reading them, but got sidetracked with some real work. I probably should have stuck with it. I'll take a look.
 
This should work as-is on macOS.
@bwanab Let me know if ^ works.
 
8:35 PM
@Adám Yes, it works. I'm probably being dumb, but the only way I could see the chart was to assign the value of sp.RenderSvg... to a variable, write to file using ⎕NPUT, then opening that file. I see in the cultivation on simple plotting a function called View. Is that Causeway.View? I get an error
InitCauseway ⍬
sp.DrawLineGraph ⊂3 1 4 1 5
Causeway.View sp
VALUE ERROR: Undefined name: svg
RenderSvg[19] mysvg←⎕NEW ⍙THIS.##.svg(mode dpi(pagemode=⍙THIS.##.PageMode.
Vertical)¯1 header)
 
@bwanab An easier way is assigning the svg to a variable and then do 'h'⎕WC'HtmlRenderer'var
 
InitCauseway ⍬
sp←⎕NEW Causeway.SharpPlot
sp.DrawLineGraph ⊂3 1 4 1 5
svg←sp.RenderSvg Causeway.SvgMode.FixedAspect
'h'⎕WC'HtmlRenderer'svg
LIMIT ERROR: The object could not be created
'h'⎕WC'HtmlRenderer'svg
 
@bwanab Try 3500⌶svg instead of the last step
 
That works! Thanks. But, duh, I hope there's a cultivation on 3500⌶. I assume 3500 refers to some system call maybe?
 
It sends HTML/SVG to RIDE's built-in browser. While I don't think I did a cultivation on it, you can find it on APLcart
 
8:48 PM
Great. Thanks for the help!
 
You're welcome, and sorry for the mess.
@Razetime APLgolf has no favicon! It should totally be a golf club with a golf ball, but the golf ball is an apple.
 
 
1 hour later…
10:21 PM
what is the most efficient way to count to a billion? python does it in 54 seconds, javascript in 6 seconds (with my code). i did x←0⋄({x+←1}⍣1E8) 1 and it's literally taking about 43 seconds to count only to 100 mil instead of a bil... because yea i got bored. why is this? maybe i'm looping wrong?
 
@BrianBED APL isn't just a dynamically typed interpreted language, it's a dynamically parsed language. Anything iterative will be horribly slow.
 
hm oh fair ig. pretty sad
 
well why not +/1E8⍴1?
 
that's not exactly counting
might as well just 1E8
 
@LdBeth my question is how that's instant but i mean that's kinda cheating because the interpreter does somekind of shortcut
@dzaima ye exactly
 
10:25 PM
@BrianBED yeah the interpreter just has a native implementation of +/
 
ah yea
 
@dzaima (also, it'd consume a ton of memory)
 
@BrianBED It doesn't take any shortcuts there, just uses vector instructions.
 
@Adám well, that is a shortcut over using a basic loop that / would imply it'd do
 
@BrianBED Takes me 90 secs to count to a 1E9 as follows:
 
10:27 PM
:o i'm exited
 
∇count;x
 x←0
 :Repeat
     x+←1
 :Until x=1E9
∇
2(400⌶)'count'
]runtime count
 
but node v8 doing tracing jit, isn't that also kind of cheating?
 
@Adám i mean it works. isn't beutiful apl code tho imo
 
@LdBeth everything is cheating if it does something your alternative can't :P
@BrianBED beautiful APL code would never iterate a billion times doing only scalar things
 
10:29 PM
Just about to say ^
 
ah yea fair
 
yes, so the problem must be hard that there is not shortcut, such as computing Pi
 
i wonder, what makes ⍣ so slow compared to normal looping?
i thought that was all it did and what it was meant for
 
takes the function and interprets it
 
I'm not sure it is that's slow. It might well be x+←1 having to manipulate the global scope.
 
10:30 PM
ahhhh probably
 
..and the dfn being initialized & freed repeatedly
 
well your implementation was way faster... and it did use that
@dzaima ah yea that too
 
({⍬}⍣1E8)1 is still slow
 
@dzaima Not sure if it is, though.
{⍵}⍣1e9⊢1 takes 9 seconds on my machine,
 
@Adám isn't {⍵} an idiom equivalent to ?
 
10:32 PM
But note that {⍵} is (literally) the same as
:-)
Running {⊢⍵} now.
 
that's much slower
 
@BrianBED 1+⍣1e9⊢0 takes only 13 secs. That's proper "counting to a billion", no?
 
oh i thought the 9 second one was aswell no?
but yea that is definetly way nicer :D
 
Well, internally, there's a counter, yes, but we don't have that exposed.
 
{x+←1} is about 2.4x slower than {1} (which is about equal to {⊢⍵}); so that's quite a bit of slowdown just due to the x+←
 
10:35 PM
wow
 
I got 226 secs for {⊢⍵}⍣1e9⊢1
Anyway, 1+⍣1e9⊢0 does count imo, so 9 secs vs JS's 6 for something APL isn't supposed to do, is acceptable.
 
definetly
thanks
 
CBQN comparisons; interestingly enough, the relative performance change is about the same despite the order of magnitude of difference
 
thats neat
 
JS for me; i'm pretty damn happy with my BQN impl that just calls things repeatedly being only 3x slower than JS and all its JIT magic
 
10:44 PM
@dzaima how fast is your machine? like damn
that's a insane implementation ya! damn
 
@BrianBED a 3.6GHz i3
 
wat... you do have way more GHz than me, i have i7 1.3 GHz
 
@dzaima Is that base or max turbo??
 
i guess it kinda makes sense given that this is all the assembly from the two functions taking part in executing +⍟n:
https://dzaima.github.io/paste/#0jZPNboJAEMfvPsUc20o2uwsoePZea5r0YEwDy5piQChLDX2B3tu@YZ@kIyuw6tZ0DwRmfvOfL3YhKyF3NRzPCE7P1e95qiKlZB5n71BsQElRp8UOSC2benYReWKoZCmj@lnwm9sLkhBiNzHCA4DJlM7QlBf7XixJnYen@@UcFo9LWFWqHNMmWJ@LmBEqdSrmIUEJm1qJpEGCjyDwCZ0cjT8fXyCiLDt@mjmZjzkZXbeSfGKVZNypoua8rESKnohLnDBzCXf7jJ@w3ckOwN7hn@M6sUVJomd9kPfIhHaO8k29dMnb0nAerlF7FCvtFI2D/W2MI1uaWukQYZNNNOt1bCYjc3krlB/jTu74YX6chK4NxBI0mDQapMQNO6/IS1OxCrFRRljQjfEbtnE/RlfAlXDMcwg3ji2cceL1Ze6x@Vf92uQ5dbCXNoHn2wnmYB
 
My i7 is 2.6 GHz base with turbo up to 5.0 GHz.
 
10:51 PM
@Adám base; i3-4160; (i didn't buy this thing; i barely knew anything about hardware when i got it. not that i know much more now really)
 
516 ms in Edge for me, but just over a second in FF ⍨
 
@Adám daaaaamn flexing. i use laptop so i have an excuse
:D
 
Mine is a laptop too.
 
damn!
 
@dzaima actually, executing a couple more times brings it down to 580ms
 
10:56 PM
price for laptops are overpriced a lot but i got mine for 13k kr
like about 2k usd
 
£1500
 
:|
fair
 
Heh, our laptops cost exactly the same.
But then again, everything is more expensive in Denmark.
 
it is? well relative to whom?
 
Almost everywhere, I think, except for Norway.
 
10:59 PM
like compared to feroe islands your goods are super cheap
 
Oh, I didn't mean to make a difference there. Sorry, again.
 
@Adám well iirc iceland's prices for normal stuff was even more than in feroe island
@Adám no idea what you say sorry for but sure
 
But yes, I guess transportation to "remote" islands adds cost. I bet laptops are expensive in Greenland too.
 
ah probably ya
 
@BrianBED I took your mentioning your price as being indicative of The Kingdom of Denmark as a whole, not any specific location within.
 
11:47 PM
ah i see right
 

« first day (1841 days earlier)      last day (816 days later) »