Apologies, I need a better mail client. On 17 September 2014 07:39, Ralph Eastwood <tcmreastw...@gmail.com> wrote: > Maxime Coste wrote: >> That last one is by far the most interesting, Bartos being very familliar >> with >> C++. Note that its not C that is advocated, but haskell... > > I would advocate functional languages (not necessarily Haskell) over C++ any > day > - although implementations of functional languages have this far > disappointed me slightly. > I'm hoping a good multi paradigm language will appear some day. > > > On 17 September 2014 06:57, Markus Teich <markus.te...@stusta.mhn.de> wrote: >> Maxime Coste wrote: >>> That is the complaint I mostly hear about Go, the lack of Generic. That and >>> garbage collection. >> >> Why would I want to apply the same algorithm to semantically different >> arguments? Appart from different kinds of number representations no useful >> example comes to mind. > > That is a good point; I think the current purpose of generics in other > languages is to > enforce type checking and provide implicit pointer conversion (for > example in C if you > had a data structure/algorithm that took in a generic type argument as > a pointer). > These are conveniences, and not necessities. > > However, there is one more valid use in the case of a generic > algorithm/data structure. > Imagine you have subroutines/functions that relate to your data > structure and you want > to add an item. Generics allow you to write one piece of code to deal > with all types and > let you pass the items *by value* rather than *by reference*. This > would be useful when > your item data type is small so it can be optimised by the compiler. > It's not like this can't be done in C, you can use X-Macros [1] to do this > (I realised after writing this example). I guess, it's arguably less elegant. > For more syntactic sugar, _Generic from C11 would work, but is not necessary. > > On a more constructive note, I think a list of C++ paradigms that are commonly > used could be compared with their C counterparts... That would make it a > useful > reference for suckless programmers. > > What are people's views on literate programming for maths heavy code? > Like Maxime, operator overloading in C++ for maths code offloads the > brain so you can > focus more on the algorithmic detail and remember what you have done > when you return > to the code after a long time (or if someone else has to read it). > I think, however, literate programming using LaTeX would allow the > same degree of > expression and probably be even better for readability. > I realise suckless code doesn't tend to make use of literate > programming often, particularly > because the code is relatively simple, memory management patterns > which C programmers > would have seen countless times over, but for complicated and novel > algorithms, > different thought patterns are necessary. > > C++ provides error-checking facilities that C does not possess. > However, I think these are > rather limited in scope. I would rather go for verification proofs [2]. > > Although C is good enough for most of us, I can't help but wonder if ideas > from > Forth, Haskell, Lisp, Alef (and so on) could somehow provide a clean systems > language without feature bloat. For instance in C (yes C), I can > immediately think of > 6 different recursive mechanisms/keywords... is that many necessary??? > > [1] http://en.wikipedia.org/wiki/X_Macro > [2] http://frama-c.com/ > > Cheers > > -- > Tai Chi Minh Ralph Eastwood > tcmreastw...@gmail.com
-- Tai Chi Minh Ralph Eastwood tcmreastw...@gmail.com