archives

Means to Limit or Constrain Side Effects

Simple scenario: I'd like to implement a "copy-string" or "substring" style routine 1) in a language where strings are typically functional; 2) without leaving all such routines to the RTL in another language; 3) without depending on some other inefficient (for these purposes) other RTL functional primitive like "strcat"; or 4) without always relying on using lists as intermediaries for every such low level routine ala "list->string (string->list s)" which again likely relies on non-functional RTL level routines anyway.

Same would go for various array initialization routines, supporting constructors for (otherwise functional) Smalltalk style variable sized data structures, and on and on.

So I seek papers, sample languages and wisdom on potentially clean language mechanisms and their semantics for allowing side effects, say during string/vector initialization as above or in some other possible scenarios (memoization? dunno), without totally letting the non-functional cat out of the bag, as it were.

My interest in this issue is pragmatic (implementing an efficient stdlib/rtl while minimizing code written in a different "lower level" language that would not likely share important properties of the target language) as well as intellectual.

Thanks much!

Scott!

AgileWiki theory/tool outline

At first the terminology sounded a little crack-pot to me, but I'm less of that opinion after trying to follow-up on AgileWiki and "rolonic" theory. Of late the lead, Bill, has put out some videos explaining things, and I found What Makes AgileWiki Different? to be interesting - there's a dose of theory (rolonic, as they've termed it) which underlies it all, and the spirit is to make languages and development better, hence I thought it not totally inappropriate to mention it on LtU.