← Back to context

Comment by fainpul

13 hours ago

I assume this is the same as this?

  # python
  [127 * sin(x * tau * freq / samplerate) for x in range(samplerate)]

For that matter,

  # python
  from numpy import sin, arange, pi
  127 * sin(arange(samplerate) * 2 * pi * freq / samplerate)

Pretty much, yeah! The difference is that in Python the function that calculates a single value looks like:

    foo(x)

...while the function that calculates a batch of values looks like:

    [foo(x) for x in somelist]

Meanwhile in Lil (and I'd guess APL and K), the one function works in both situations.

You can get some nice speed-ups in Python by pushing iteration into a list comprehension, because it's more specialised in the byte-code than a for loop. It's a lot easier in Lil, since it often Just Works.