4 ms·
I see, so strings act as implicit "constructors" for datatypes (which are not even datatypes per se, just encoded information within a given string datatype), d
by 9214 6y ago
I see, so strings act as implicit "constructors" for datatypes (which are not even datatypes per se, just encoded information within a given string datatype), depending on their usage? This is indeed an interesting design choice. Rebol in such cases requires explicit conversion from string to a target type.
- stchacademy 6y agoYes, you are right. And this is the way it works throughout, with different functions - 'do' aside, that is. For example, there is the very powerful 'read' function. This may take a simple string (text), a file location or a URL. You obviously know what it is and the interpreter will figure it out itself as well. Now, let's say you want to read a file: read "myfile.txt" "Reading" a webpage: read "http://somewebsite.com/somewebpage http://somewebsite.com/somewebpage" Parsing JSON from a remote source: read.json "http://somewebsite.com/data.json http://somewebsite.com/data.json" Or parsing it from a string: read.json "[1,2,3]" And 'read' also can take different attributes, e.g. .csv (for parsing CSV files), .html etc etc... Basically you pass a string with its options and the interpreter figures out where to get it from and what to do with it... :)
- stchacademy 6y ago(I'm replying here, since I don't seem to be able to reply directly) @9214 Since you are knowledgeable about the topic (included but not limited to Rebol/Red), I would be glad if you joined the effort. Even testing bits here and there would be great. You're welcome :)
- 9214 6y agoAlright, but personally I fail to see how is that qualitatively different from all the other mainstream languages that use strings as a compensatory kitchen sink to encode literals not present by default.
- stchacademy 6y agoFYI, I've just published the first complete reference (language reference + full library reference, with tons of examples): https://github.com/arturo-lang/arturo/wiki https://github.com/arturo-lang/arturo/wiki Let me know what you think! :)
- stchacademy 6y agoWell, the main difference is that - although we do use strings (for files, urls, etc) - the appropriate datatypes are constructed implicitly, that is: no need for newFile("someFile") or %someFile. "someFile", if it is a file path, will be automatically handled as such. If it is a url, accordingly. The point is to keep the syntax clean. (Ok, that would be an argument of going all the way, like Tcl, where everything ends up being a string - but let's just get the best of every world without overdoing it :) )
- 9214 6y agoGood point about Tcl, that now makes sense. Thanks for elaborating!