• thinking about the skinnest c

    From fir@profesor.fir@gmail.com to comp.lang.c on Tue May 12 15:08:41 2026
    From Newsgroup: comp.lang.c

    by skinnest c i mean such c 'skin' that would be much more thin than
    the present (also its strictly not skinnest but a compromise of thinning
    and elegance)

    i think on it form time to time on span of years, but its a hard task

    i may show my recent thoughts:

    i get the idea that int x you turn into _x (where _ is like "declare
    int" so _x is :declare int x"

    then i think assigment i would do x_ 1 (the other candidate for
    assigment would be x 1, maybe better but it blocks a lot of syntax like argiment list

    imo thui definitelly looks somewhat good, it also may be used to
    function calls

    _x _y foo a b
    mean "int x, y = foo(a,b)"

    x_ y_ foo a b
    mean " x, y = foo(a,b)"

    this is somewhat good becouse it shows very cheap which arguments are
    in and which are out (in are those without underscore out are those with underscore

    it also has advantage that result could be seen as a vector/tuple for immediate use ..this hovever still has some problems (though i like it generally)

    = would be not used for assigments, it would be used only for
    comparisons (comparsions?)

    a=3?buum x y //(if(a==3) buum(x,y)

    else probably should be used some other sign like -+

    a=4?buum -+zoom

    and i think may be used for populating ? like

    300?a<200? boom

    where or need a sign im not sure is space would sufice

    a=2 a=3 a=4? zoom

    loops also needs some sign temporalely take ??

    a<10?? boom(a++) // while(a<10) boom(a++)

    hard problem is how function definition should look like and i have it
    not resolved yet

    _x _y foo a_ b_ {} //?? maybe this could work but im not sure

    im also not sure how to introduce types like float
    simply maybe special unicode signs would be needed (something like _
    with smal f above it)





    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Tue May 12 15:25:15 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    by skinnest c i mean such c 'skin' that would be much more thin than
    the present (also its strictly not skinnest but a compromise of thinning
    and elegance)

    i think on it form time to time on span of years, but its a hard task

    i may show my recent thoughts:

    i get the idea that int x you turn into _x (where _ is like "declare
    int" so _x is :declare int x"

    then i think assigment i would do x_ 1 (the other candidate for
    assigment would be x 1, maybe better but it blocks a lot of syntax like argiment list

    imo thui definitelly looks somewhat good, it also may be used to
    function calls

    _x _y foo a b
    -amean "int x, y =-a foo(a,b)"

    x_ y_ foo a b
    mean " x, y =-a foo(a,b)"

    this is somewhat good becouse it shows very cheap which arguments are
    in and which are out (in are those without underscore out are those with underscore

    it also has advantage that result could be seen as a vector/tuple for immediate use ..this hovever still has some problems (though i like it generally)

    = would be not used for assigments, it would be used only for
    comparisons (comparsions?)

    a=3?buum x y-a //(if(a==3) buum(x,y)

    else probably should be used some other sign like -+

    a=4?buum -+zoom

    and i think may be used for populating ? like

    300?a<200? boom

    where or need a sign im not sure is space would sufice

    a=2 a=3 a=4? zoom

    loops also needs some sign temporalely take ??

    a<10?? boom(a++) // while(a<10) boom(a++)

    hard problem is how function definition should look like and i have it
    not resolved yet

    _x _y foo a_ b_ {} //?? maybe this could work but im not sure

    im also not sure how to introduce types like float
    simply maybe special unicode signs would be needed (something like _
    with smal f above it)



    as to tuple/vector arithmetic im not sure but maybe just must use
    aprenthesis

    (a b c)_ (1 2 3) // tuple assignment

    (a b c) = (1 2 3) ? //tuple comparison

    it could be done thinner but overally vector arithmentic is probably not
    the priority..i find finally "," good as separator

    so

    a b c = 1 2 3 //i would find probably as a 5 element tuple

    'akjankjan' would be an hoc enums and only enums i think
    "shbshjbs" would be strings "A" would be chars

    overally as i once said there is probably a good idea ti reach for
    unicode signs and use them..i think much more elegance could be obtained
    with unicode signs than reusing only old ascii

    most problematic is still the function header thing

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 10:51:35 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    by skinnest c i mean such c 'skin' that would be much more thin than
    the present (also its strictly not skinnest but a compromise of
    thinning and elegance)

    i think on it form time to time on span of years, but its a hard task


    hard problem is how function definition should look like and i have it
    not resolved yet

    _x _y foo a_ b_ {} //?? maybe this could work but im not sure

    i also think

    foo ->x ->y _a _b { x-> a+b, y->a-b }

    _a for "input int a"
    x for "output int x"

    here _x a+b would be "x=a+b" and x-> a+b would be just the same, but
    maybe version for assigning output variables for clarity

    it seems reasonably good, not to say there is no something better

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 11:06:03 2026
    From Newsgroup: comp.lang.c

    fir pisze:

    as to tuple/vector arithmetic im not sure but maybe just must use
    aprenthesis

    (a b c)_ (1 2 3)-a // tuple assignment

    (a b c) = (1 2 3) ?-a //tuple comparison


    as to this im not sure hoveverv as it looks bad
    there is also to consider

    a_b_c_ 2 3 4 //assign a tuple

    a b c = 1 2 3 //meybe this one after all (for tuple comparsions)

    the last one need to be checked what would be more usable/
    what is more important, tuple comparsion or local comparsion in tuples
    (the second one seem somewhat doubtfull, as honestly the value of
    comparsion as an element in vector is kinda doubtfull)



    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 12:12:59 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    -ai also think

    foo ->x ->y _a _b-a-a-a {-a x-> a+b,-a y->a-b-a }

    ye this look not bad, my design still somewhat 'shines' sometimes,
    despite im old and sick

    (not to say the problem is to introdue other types and ot spoil it,
    sothis is more example of new b than new c)
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 13:55:00 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    loops also needs some sign temporalely take ??

    a<10?? boom(a++) // while(a<10) boom(a++)

    thet wouled be while but there is still an option for for loop


    10x boom

    //ten times boom

    10x20x

    //double loop

    thsi could be done especially if rake x from unicode there should be
    something

    if _10 would be an int[10] evector type im not sure how double array
    would be _10 _20 cant be as its two veectors maybe _10x20 could be..but
    still im not sure bcouse the syntax _a (thus _N) is locked thus _NxM cant be

    __N could eventually but the construction _n as n is name not counter is locked too

    _x is int x

    _6x would be eventually vector of 6 ints

    _*y could be eventually and unknown length array? then **y two
    dimensional (?)

    need to search some things here yet

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 14:15:54 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    loops also needs some sign temporalely take ??

    a<10?? boom(a++) // while(a<10) boom(a++)

    thet wouled be while but there is still an option for for loop


    10x boom

    //ten times boom

    10x20x

    //double loop

    thsi could be done especially if rake x from unicode there should be something

    if _10 would be an int[10] evector type im not sure how double array
    would be _10 _20 cant be as its two veectors-a maybe _10x20 could be..but still im not sure bcouse the syntax _a (thus _N) is locked thus _NxM
    cant be

    __N could eventually but the construction _n as n is name not counter is locked too

    _x is int x

    _6x would be eventually vector of 6 ints

    _*y could be eventually and unknown length array? then **y two
    dimensional (?)

    need to search some things here yet


    well maybe.. i remember i had some problem
    i wanted to aksess arrays with . like a.1,
    a.2 but i thought cant do a.b when b is variable
    of value say 2..bet here it seems possible

    a.b (a is an array, b is variable) so it
    probably means its at least partially good idea


    _*a //declare undefined array of ints (?)

    _b 2 //int b =2;

    a.b //take element 2
    or *a.b (?)

    a.b _ a.b+1
    or a_.b a.b+1 (?)

    still this assigment operator looks a bit weird but at this moment im
    quire sure "=" cant stay

    "=" is over

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 14:48:24 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    fir pisze:
    loops also needs some sign temporalely take ??

    a<10?? boom(a++) // while(a<10) boom(a++)

    thet wouled be while but there is still an option for for loop


    10x boom

    //ten times boom

    10x20x

    //double loop

    thsi could be done especially if rake x from unicode there should be
    something

    if _10 would be an int[10] evector type im not sure how double array
    would be _10 _20 cant be as its two veectors-a maybe _10x20 could
    be..but still im not sure bcouse the syntax _a (thus _N) is locked
    thus _NxM cant be

    __N could eventually but the construction _n as n is name not counter
    is locked too

    _x is int x

    _6x would be eventually vector of 6 ints

    _*y could be eventually and unknown length array? then **y two
    dimensional (?)

    need to search some things here yet


    -awell maybe.. i remember i had some problem
    -a i wanted to aksess arrays with . like a.1,
    -a a.2 but i thought cant-a do a.b when b is variable
    -a of value say 2..bet here it seems possible

    -a a.b (a is an array, b is variable) so it
    -a probably means its at least partially good idea


    -a _*a-a //declare undefined array of ints (?)

    -a _b 2 //int b =2;

    -a a.b //take element 2
    -aor *a.b (?)

    -a a.b _ a.b+1
    or a_.b a.b+1-a (?)

    possibly a_.b c syntax is better coz a.b_ 3 could be used naturally for
    "b=3; a[b];"

    so

    foo _*a _i _c
    {
    a_.i c //analog for a[i]=c, same length as in old c
    }

    foo a i c




    -astill this assigment operator looks a bit weird but at this moment im quire sure "=" cant stay

    -a"=" is over


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 15:04:20 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    fir pisze:
    so

    -a foo _*a _i _c
    -a {
    -a-a-a a_.i c-a-a //analog for a[i]=c, same length as in old c
    -a }


    well a is input and output - input is a as an entry output is a contents
    though im not sure it would be proper

    foo ->*_a _i _c {a->.i c }

    thsi goes down into more details (?)
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 15:16:30 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    fir pisze:
    fir pisze:
    so

    -a-a foo _*a _i _c
    -a-a {
    -a-a-a-a a_.i c-a-a //analog for a[i]=c, same length as in old c
    -a-a }


    well a is input and output - input is a as an entry output is a contents though im not sure it would be proper

    foo-a ->*_a _i _c {a->.i c }

    thsi goes down into more details (?)

    well meybe this is good?

    i mean you eventually can even do foo ->_*->_a _i _c
    where ->_a would mean input output a array as a structore
    (pointer and boundary, it also mena acces to indexing it but no acces to
    its contents) where ->_* could mean inpout and output of its contents

    those are further details so maybe it even should be yet thinked


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 15:30:58 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    im also not sure how to introduce types like float
    simply maybe special unicode signs would be needed (something like _
    with smal f above it)

    it could be done with subscripts and superscripts but scandalously
    unicode dont have all basic letters there afaik

    b|ax 20 //float x = 20

    xreu 10 // x = (float) 20, if there would be subscript f i put k instead

    though for assigments the type is not needed rpobably so it could be

    x_ 10 //if x is float, but subscripts are not bad imo


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Wed May 13 15:50:52 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    im also not sure how to introduce types like float
    simply maybe special unicode signs would be needed (something like _
    with smal f above it)

    it could be done with subscripts and superscripts but scandalously
    unicode dont have all basic letters there afaik

    b|ax 20 //float x = 20

    xreu 10 // x = (float) 20, if there would be subscript f i put k instead

    though for assigments the type is not needed rpobably so it could be

    x_ 10 //if x is float, but subscripts are not bad imo


    those prev functions for floats would look like ?:

    foo b|a*a b|oi reuc {ab|a.i c }

    but it seems * should also be subscripted - noting that array a adress
    is for read, float contents are for write (there is no subscript * in
    unicode)

    wventually it could be maybe

    foo *b|aa b|oi reuc {ab|a.i c }


    *b|aa means array of output float values

    though then

    7b|a can be a ector of 7 floats? maybe

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From fir@profesor.fir@gmail.com to comp.lang.c on Thu May 14 19:44:31 2026
    From Newsgroup: comp.lang.c

    fir pisze:
    fir pisze:
    fir pisze:
    im also not sure how to introduce types like float
    simply maybe special unicode signs would be needed (something like _
    with smal f above it)

    it could be done with subscripts and superscripts but scandalously
    unicode dont have all basic letters there afaik

    b|ax 20 //float x = 20

    xreu 10 // x = (float) 20, if there would be subscript f i put k instead

    though for assigments the type is not needed rpobably so it could be

    x_ 10 //if x is float, but subscripts are not bad imo


    those prev functions for floats would look like ?:

    -a-a foo b|a*a b|oi reuc {ab|a.i c }

    but it seems * should also be subscripted - noting that array a adress
    is for read, float contents are for write (there is no subscript * in unicode)

    wventually it could be maybe

    -a-a foo *b|aa b|oi reuc {ab|a.i c }


    this i know dont look god and need to be something other
    but the version with dashes/over/underscores looks nice and
    generally im quite happy for some conclusions here

    for float shortcut i could eventually would take something like


    foo -Uf -|x -|y //floats
    {
    f-Ux+y //f_x+y also allowed for floats?
    }

    foo ->i _x _y //ints
    {
    i->x+y //i_ x+y allowed?
    }

    though it seems maybe a bit too fragile
    still there would be a need fo shorts/long chars doubles

    and finally for defined complex types (no idea)




    *b|aa means array of output float values

    though then

    -a7b|a can be a ector of 7 floats? maybe


    --- Synchronet 3.22a-Linux NewsLink 1.2