September Meetup 24/9

13 views
Skip to first unread message

Matthew G

unread,
Sep 17, 2013, 12:15:40 PM9/17/13
to brisfun...@googlegroups.com
Hi Everyone

  We just announced the Array Programming night at http://www.meetup.com/BrisFunctional/events/140711592/ - signing up there is optional but it's nice if you do :)  Hope to see lots of you there for some frankly confusing code and some gained understanding!

  We've moved the start time back to 6.30PM so we don't clash with the time that the security lock the front door!

  Matthew

Arwyn

unread,
Sep 25, 2013, 9:37:02 AM9/25/13
to brisfun...@googlegroups.com
Hi Matthew et al.,

Thanks again. I really enjoyed the intro to J last night.
My brain was buzzing into the wee small hours!

Some links that may be of interest:

I saw on the Wikipedia article for J (http://en.wikipedia.org/wiki/J_(programming_language) that it is mentioned as an influencer of SuperCollider (of Overtone fame). That lead me to read the section on the SuperCollider language (sclang) and it turns out to be quite functional.

Quoting Wikipedia:
The SuperCollider programming language is a dynamically typed, garbage-collected, single inheritance object-oriented and functional language similar to Smalltalk,[3] with a syntax similar to Ruby or the C programming language. Its architecture strikes a balance between the needs of realtime computation and the flexibility and simplicity of an abstract language. Like many functional languages, it implements functions as first class objects, which may be composed. Functions and methods can have default argument values and variable length argument lists and can be called with any order of keyword arguments. Closures are lexical, and scope is both lexical and dynamic. Further features typical of functional languages are supported, including closure creation via partial application (explicit currying), tail call optimization, list comprehensions, and coroutines. Specifics include the implicit expansion of tuples and the stateless pattern system. Its constant time message lookup and real time garbage collection allows large systems to be efficient and to handle signal processing flexibly.[4]
By supporting methods of reflective, conversational, and literate programming, SuperCollider makes it relatively easy to find new sound algorithms[8] and to develop custom software as well as custom frameworks. With regards to domain specific knowledge, it is both general (e.g., it allows to represent properties such as time and pitch in variable degrees of abstraction) and copious of example implementations for specific purposes.[4]

Doesn't sound much like J but maybe the array processing part is.

On another topic, we were talking about Ajhc in the pub: http://ajhc.metasepi.org/
Links there to jhc etc.

As Thom pointed out there is also the LLVM option for GHC:
If anyone comes across other ways to get Haskell running on embedded devices, I'd be keen to hear about it.

See you all on the 29th October.

Cheers,
Arwyn

Matthew Gilliard

unread,
Oct 7, 2013, 10:20:24 AM10/7/13
to BrisFunctional
J & SuperCollider (sclang), interesting...

  SuperCollider is the audio-engine used by Overtone as shown to us by Sam Aaron a few months ago.  I hadn't thought about it before, but Overtone is quite special in how it treats its datatypes - you can pass a signal to a low-pass filter (for example):

(def new-signal  ;;mono
    (lpf signal threshold))

  or you can treat an "array" of signals (usually a left-right stereo pair) the same way (I assume they're DSP'd in parallel, but who knows?)

(def new-signals  ;; stereo
    (lpf signals threshold))

  This is really useful and probably the most obvious "array-programming" influence in sclang in Overtone in Clojure.


--
You received this message because you are subscribed to the Google Groups "BrisFunctional" group.
To unsubscribe from this group and stop receiving emails from it, send an email to brisfunctiona...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply all
Reply to author
Forward
0 new messages