
| # | User | Message | Date |
| 696 | Henrik | Don't know any, sorry. | 18-Jan 16:59 |
| 695 | Sunanda | Anyone got any tools for emitting docs in EPUB format? Please!? | 18-Jan 16:56 |
| 694 | Gregg | Geoff, don't be afraid to sketch out ideas of your ideal language, with different approaches and tradeoffs, and then posting them here for people to comment on. Language design isn't easy, and you can paint yourself into a corner, or make it too hard to implement easily by making it do too much. Start small and come up with the core ideas that define the feel of your language, and keep other questions in mind. What are you descrbing? What are the things and what are the actions? Do you need to refer to things you've defined within the dialect, or does it just pre-process and build structures for regular REBOL processing? | 13-Jan-11 23:59 |
| 693 | Maxim | glad to help. | 13-Jan-11 21:38 |
| 692 | gcaplan | Well, you guys have given me a good starting point, which is what I was hoping for. Have to sign off but I'll get my hands dirty over the next couple of weeks and maybe come back with some more specific questions. Thanks to all! | 13-Jan-11 21:37 |
| 691 | Maxim | another thing which helps is to be (rather) fluent or at least aware in how REBOL handles the evaluation of words and how to bind words to different blocks. mastering this will help you go at a new level in your dialecting. keep this for your second pass at learning if you're still new to REBOL itself. | 13-Jan-11 21:36 |
| 690 | GrahamC | Anyway, I think if you just get started it will fall into place | 13-Jan-11 21:36 |
| 689 | gcaplan | Maxim - thanks for the tip on the datattypes - the kind of in-the-trenches technique that a newbie like me would overlook. | 13-Jan-11 21:35 |
| 688 | gcaplan | Screen control sounds good - not too big or wooly - I'll take a look. SQL would be directly relevant to my project, so I'll definitely dig that one out. Do you mean SQL-PROTOCOL or is there something more recent? | 13-Jan-11 21:34 |
| 687 | Maxim | one key thing to explore is to use the full arsenal of datatypes at your disposal. some of the more obscure datatypes are VERY usefull in dialects. types like tag! issue! are rarely used in rebol, but are very usefull as variations on strings in order to classify them as different types of stings. | 13-Jan-11 21:34 |
| 686 | Steeve | A dialect is an interface to hide code complexity. It's only that. | 13-Jan-11 21:33 |
| 685 | Maxim | the way I approach dialects ususally is very similar to describing "ideas" using real language. | 13-Jan-11 21:32 |
| 684 | GrahamC | there's a SQL dialect too | 13-Jan-11 21:32 |
| 683 | GrahamC | Also, there's one on reboforces.com on a screen control dialect | 13-Jan-11 21:32 |
| 682 | gcaplan | I like Graham's idea of writing out the sentences - something to tangible to start from. I'm familiar with the idea from relational data design. | 13-Jan-11 21:32 |
| 681 | Maxim | there is an exensive BASIC interpreter dialect, but that's also quite large as a learning curve. | 13-Jan-11 21:31 |
| 680 | GrahamC | Gregg has a LOGO dialect I think ... | 13-Jan-11 21:31 |
| 679 | GrahamC | I think ASM dialects have been written ... | 13-Jan-11 21:31 |
| 678 | Maxim | funny that most dialect start small then grow quickly, so there probably aren't a lot of smalish dialects around. | 13-Jan-11 21:31 |
| 677 | Steeve | A Dialect is not related with specific coding practices. You can use parsing or not. It's just an interface. You should read the theory to begin with. | 13-Jan-11 21:30 |
| 676 | gcaplan | Ah - I see what you mean. Thought that you meant that someone has implemented a Forth like dialect in Rebo. | 13-Jan-11 21:30 |
| 675 | GrahamC | It is used in robotics, control systems ( originally astronomy, telescopes ) | 13-Jan-11 21:30 |
| 674 | GrahamC | forth is a language ... which also specialises in creating domain specific languages | 13-Jan-11 21:29 |
| 673 | gcaplan | Also, where is the forth dialect - not coming up on Google... | 13-Jan-11 21:27 |
| 672 | gcaplan | Where are Carl's examples - you mean the stuff in the overview? It's pretty minimal. If there's something I've missed I'd appreciate a link | 13-Jan-11 21:26 |
| 671 | GrahamC | VID as an example is probably too intimidating | 13-Jan-11 21:25 |
| 670 | GrahamC | Also I think the forth dialect examples would also be quite good | 13-Jan-11 21:24 |
| 669 | GrahamC | Did you look at Carl's examples? | 13-Jan-11 21:23 |
| 668 | gcaplan | Graham - simple and practical - just the kind of thing I'm looking for | 13-Jan-11 21:23 |
| 667 | gcaplan | I guess I should take a look, at the existing dialects, but they're a bit intimidating for a newbie. What would you suggest as Best of Breed examples? Something not too huge, for preference. | 13-Jan-11 21:23 |
| 666 | GrahamC | I suggest you think about what you want to do .. write it out as sentences and then refine them | 13-Jan-11 21:22 |
| 665 | gcaplan | The thing that's interesting about business rules is the need to mix declaratory configuration with some functional-style code. So you end up with chains of reasoning involving a mix of data and code. Which is why I though Rebol might be a good way to go. | 13-Jan-11 21:21 |
| 664 | Ladislav | Examples are the available dialects. | 13-Jan-11 21:21 |
| 663 | gcaplan | That's my point, I think. As I'm starting from scratch, I'm looking for principles, examples - anything that would help me get up to speed... | 13-Jan-11 21:19 |
| 662 | Ladislav | For me, it is usually more difficult to design a meaningful dialect, than to parse it. | 13-Jan-11 21:18 |
| 661 | gcaplan | As I say, the book is fine on the low-level details - it's the higher level issues of designing an effective and usable dialect that I'm hoping to explore | 13-Jan-11 21:18 |
| 660 | Ladislav | geoff, did you read http://en.wikibooks.org/wiki/REBOL_Programming/Language_Features/Parse/Parse_expressions , or some other topics in the book? | 13-Jan-11 21:16 |
| 659 | Henrik | I agree mostly. I would like to see some generic parse rules built into REBOL for general use. | 13-Jan-11 21:13 |
| 658 | gcaplan | I've a notion to build a business rules parser in Rebol. But as a self-taught hacker with no background in computer science, I'd welcome any advice on flattening the learning curve. The docs cover the low level parsing details well enough, but I'm looking for enlightenment on the higher level issues involved in designing a little domain level language. Given that Carl is pushing Dialects as the Big Idea in Rebol, it's surprisingly difficult to find much on the topic in the Rebol community. Or am I missing something? I'd welcome any Rebol specific or generic resources to help me get up to speed on the whole DSL thing... | 13-Jan-11 21:08 |
| 657 | Reichart | You do need some award for the Clay one. And the WHOLE photo is simply cool unto itself... | 30-Jun-10 6:23 |
| 656 | Reichart | You do need some award for the Clay one. And the WHOLE photo is simply cool unto itself... | 30-Jun-10 6:23 |
| 655 | Fork | Moving to chat. | 27-Jun-10 10:14 |
| 654 | Fork | As per Jerry Maguire... "Help me, help you!" :) | 27-Jun-10 10:13 |
| 653 | Fork | As well as experimenting with making the thing out of clay: http://hostilefork.com/shared/rebol/clayrebol_idea.jpg | 27-Jun-10 10:09 |
| 652 | Fork | I spent not only time, but money paying some guy to 3D render this darn logo: http://www.rebol.net/wiki/REBOL_logo | 27-Jun-10 10:09 |
| 651 | Fork | I probably spent less than a week on that Rubol thing, which I think isn't a bad idea either: http://hostilefork.com/rubol/ | 27-Jun-10 10:06 |
| 650 | Fork | You guys can do better, you know the language better. I only just learned "Any" and "All". I know the gist of Rebol but I've clocked not too many hours with it, this Rebmu thing is the most time I've ever spent with it to be honest. | 27-Jun-10 10:05 |
| 649 | BrianH | That's why I like the idea of unrebmu as an implementation strategy - it makes for a more impressive demo :) | 27-Jun-10 10:04 |
| 648 | Fork | And it pains me to read some of these code golf solutions, I know that as with the connect-the-dots I can beat perl and still write coherent code. | 27-Jun-10 10:04 |
| 647 | Fork | I'm not compressing random digits here, I'm trying to make a domain demo of a domain that people are (for reasons better or worse) rather interested in. | 27-Jun-10 10:01 |
| 646 | Rebolek | Wasn't the first name Phoenix? | 27-Jun-10 10:00 |
| 645 | Fork | Bringing it back to dialects, I am serious with the Rebmu thing. I'm fully aware it *looks* like a joke but it is not. | 27-Jun-10 10:00 |
| 644 | BrianH | One interesting related trick: The EXPORT keyword in R3 modules is done with a similar preprocessor in the MAKE-MODULE function. Just a few lines, and it works like magic :) | 27-Jun-10 10:00 |
| 643 | Fork | :) I skipped a step. | 27-Jun-10 9:58 |
| 642 | BrianH | Actually, they called it Firebird, and we saw what happened: They had to change the name again to Firefox :) | 27-Jun-10 9:58 |
| 641 | Fork | In my opinion, Rebol is a more significant and interesting technical artifact than Mozilla. Bear in mind I have a lot of context, so I'm not saying it's the greatest technology ever, I'm just going to say that on many axes it is essentially the best in its class that we know of. | 27-Jun-10 9:58 |
| 640 | Fork | Despite it being the very foundation of something they all know -- Firefox. | 27-Jun-10 9:57 |
| 639 | Fork | The layman today does not know what Mozilla even is. | 27-Jun-10 9:57 |
| 638 | BrianH | It would have enough overhead that it should not be there by default - LOAD does enough as it is. However, it might be an interesting tool for somebody, and a great demonstration. And it can be an add-on module, which makes it an even better demonstration. | 27-Jun-10 9:56 |
| 637 | Fork | @Ladislav: Tonight I was discussing the Firefox/Mozilla thing with my roommate. It was an issue where Mozilla was building a lot of functional stuff, but they didn't have quite the ability or agility to see and take advantage of opportunities. Some weird dude came along and said "Hey, I'm gonna chop all this stuff off, and insert this stuff, and call it 'Firefox', and let's see what the heck happens..." | 27-Jun-10 9:55 |
| 636 | Ladislav | "I think there's a big gap between the usefulness of a spanish or Italian localization and a chinese localization." - actually not, as Jerry mentioned some time ago, there are exactly the same reasons why it is not useful | 27-Jun-10 9:53 |
| 635 | BrianH | COMPRESS uses the Deflate algorithm, plus an integer on the end for the length of the uncompressed data, for allocation purposes. It has the same limitations as any other Deflate compressor (zip, gzip, zlib, png, ...). | 27-Jun-10 9:53 |
| 634 | Fork | s: ^ "badfjakshdg--" | 27-Jun-10 9:51 |
| 633 | Fork | Although this bunch is in flux, I tried making [^ foo] map to [to-string debase foo]. This means S^"badfjakshdg--" (or whatever) will give you the un-base-64'd string. | 27-Jun-10 9:51 |
| 632 | Fork | In any case, the single-character operators in Rebmu are a tricky bunch for reasons I explained above, but one case that they do pop up in is assignments where the left hand is an all-caps target (set-word) and the right hand is a string or block or something. That's when you can get them easily. | 27-Jun-10 9:50 |
| 631 | Fork | I assume it's because of using a standard that expected the "do not compress" to be taken care of at a higher level. | 27-Jun-10 9:48 |
| 630 | Fork | @BrianH, continuing: So I thought "well, Rebol can uncompress, why not make an operator that takes compressed data and uncompresses it". I was surprised that compress was returning significantly larger data than the input for small inputs. What's up with that? | 27-Jun-10 9:48 |
| 629 | BrianH | That's why making an ultra-cool demo is a priority :) | 27-Jun-10 9:47 |
| 628 | Fork | But also a desire to get "fringe"/"creative" people to become aware of Rebol. | 27-Jun-10 9:47 |
| 627 | BrianH | Spite for Perl is a noble motivation :) | 27-Jun-10 9:46 |
| 626 | Fork | I am driven largely by spite for Perl, to be honest. | 27-Jun-10 9:46 |
| 625 | Fork | I break into Rebol of course for debugging, probing etc, but that's just inserted in the margins, then I delete them. | 27-Jun-10 9:45 |
| 624 | Fork | @Rebolek: For the sake of the psychological testing, these Code Golf problems I'm solving... I'm actually solving *in Rebmu*, mushed form. | 27-Jun-10 9:45 |
| 623 | Rebolek | Janko wanted some script obfuscator and as I see, Rebmu is already less readable than Brainfuck, so I think it's a good candidate. | 27-Jun-10 9:44 |
| 622 | Fork | It's a good question, and regarding that, I noted that many of the solutions to Code Golf problems utilize base-64. | 27-Jun-10 9:44 |
| 621 | BrianH | I wonder how rebmu would compare to COMPRESS for space savings? Compressed scripts/modules are planned for R3 (actually, implemented but not included yet). This includes binary! syntax encoded compressed data. | 27-Jun-10 9:42 |
| 620 | BrianH | Your unrebmu proposal would be a compiled dialect, with the target being DO dialect code. This is a good technique for many dialects, and can be very fast. That makes it a good idea for a demo. | 27-Jun-10 9:39 |
| 619 | Fork | Meaningless letters, far from being able to handle N-digit numbers... y'know, the usual. I'm standing on the shoulders of giants here, but that's why I can see farther. | 27-Jun-10 9:39 |
| 618 | Fork | And that perl is garbage. No functions, no reusability, no intelligence. | 27-Jun-10 9:37 |
| 617 | Fork | Hopefully you get the idea. It's really simple. I'm not trying to beat the winners based on libraries or tricks, I'm not trying to write clever code, I'm writing REALLY boring straightforward code with function definitions and everything which can be adapted easily if the problem spec is adapted. And still within a stone's throw of the winners, or even beating them. In this case I got 218 characters compared to the winning "perl" at 222. | 27-Jun-10 9:37 |
| 616 | Fork | change c b pick L either-zero v 1 [either-zero h 2 [either-equal h v 3 4]] | 27-Jun-10 9:35 |
| 615 | Fork | ch c b pc l ez v 1 [ez h 2 [ee h v 3 4]] | 27-Jun-10 9:34 |
| 614 | Fork | Which letter we use to draw the wall depends on h and v, right? If our vertical bump is zero, we know we want the first element. If our horizontal bump is zero we know we want the second. If the bump is [1 1] or [-1 -1] we know we want the "/" (third element), otherwise the fourth ("\"). This line is really rather boring: | 27-Jun-10 9:34 |
| 613 | Fork | ; string containing the (l)etters used for walls l: {-|\/} | 27-Jun-10 9:32 |
| 612 | Fork | We keep bumping B until we reach F. How much do we bump the X coordinate of B and how much do we bump the Y coordinate of B on each iterator step? That is stored in H and V which are in the set (-1, 0, 1). | 27-Jun-10 9:32 |
| 611 | Fork | Then clearly we loop through G. On each loop iteration, B is the coordinates of the start of our pen and F is the location of the finish of our pen. | 27-Jun-10 9:31 |
| 610 | Fork | So the issue we discussed about needing to build the map ahead of time is taken care of right there. After this step, G is an ordered series of two-element blocks... each with two integers, the coordinate pair of where that dot is. | 27-Jun-10 9:29 |
| 609 | Fork | And it is the x and y functions which translate those into coordinates. | 27-Jun-10 9:29 |
| 608 | Fork | Er, no the d function returns the series position | 27-Jun-10 9:28 |
| 607 | Fork | while [j: d (++ n)] [repend/only g [x (j) y (j)]] | 27-Jun-10 9:28 |
| 606 | Fork | So this line here: "w [j: d ++ n] [ro g [x j y j]]" is that building of the initial coordinate map. It keeps incrementing n, and passing it to the "d" function which returns either the coordinate pair where that digit resides (or none if the digit could not be found). | 27-Jun-10 9:27 |
| 605 | Fork | Well, if what BrianH is true I may need to write "unrebmu" sooner rather than later | 27-Jun-10 9:25 |
| 604 | Fork | It's simple at heart. | 27-Jun-10 9:25 |
| 603 | Steeve | Sorry not at all, If you could decipher your code for me... | 27-Jun-10 9:24 |
| 602 | Fork | Did you go through my solution at all? | 27-Jun-10 9:24 |
| 601 | Steeve | :-) | 27-Jun-10 9:24 |
| 600 | Fork | Then you get there and realize "oh crap" and suddenly you've added like 50 characters | 27-Jun-10 9:23 |
| 599 | Fork | A lot of these problems have gotchas like that where you think "oh, easy I'll just do it like this..." | 27-Jun-10 9:23 |
| 598 | Steeve | Yes I finally understood that point | 27-Jun-10 9:22 |
| 597 | Fork | That forces you to basically build a map of the numbers before you start drawing the lines :( | 27-Jun-10 9:22 |
| 596 | Fork | Specifically, there are cases when lower numbered dots can connect and cross over the second digit of a larger numbered dot | 27-Jun-10 9:21 |
| 595 | Steeve | *But | 27-Jun-10 9:21 |
| 594 | Steeve | Bit I don't think we can beat the shortest solution | 27-Jun-10 9:21 |
| 593 | Fork | In solving it I found that like with many code golf problems there are some little "nuances" which emerge as you look at it... | 27-Jun-10 9:21 |
| 592 | Steeve | Well, i saw the remaining problems in my code, correcting them would not enlarge so much the length of the code | 27-Jun-10 9:20 |
| 591 | Fork | And like I say about my Hourglass solution vs. the "winning" golfscript solution... it broke the rules, it has no reusable parts, it exploits symmetries and gimmicks in the problem such that if the problem specification changed only slightly you'd have to rewrite the whole thing. | 27-Jun-10 9:20 |
| 590 | Fork | I'm glad you tackled the connecting dots problem, though I don't think your solution worked... but it was in the spirit of my desire to see Rebol step up to these challenges and prove itself. Because if it can win at anything, it can win at this. | 27-Jun-10 9:18 |
| 589 | Fork | To superset Rebol when coded natively, in lowercase. | 27-Jun-10 9:16 |
| 588 | Fork | Again, that is the baby in this bathwater. | 27-Jun-10 9:16 |
| 587 | Steeve | hum ok | 27-Jun-10 9:16 |
| 586 | Fork | It doesn't make sense if trying to retain compatibility with lowercase Rebol code. I want to be able to paste "to-string" in the middle of a Rebmu program and have it "just work" | 27-Jun-10 9:16 |
| 585 | Steeve | Well, you could prevent not alphabetic chars from being part of any word. It would make sense.| | 27-Jun-10 9:15 |
| 584 | Fork | Is there a "weirdest dialect" award I'm going to win with this? :) | 27-Jun-10 9:13 |
| 583 | Fork | Consequently, you're better off with a two character A~ for AND~, because you'd end up having to throw in spaces on the left and right of the & all the time otherwise, which gets you three characters, and you'd probably have to throw one on the left half the rest of the time. | 27-Jun-10 9:12 |
| 582 | Fork | Another issue of using single character symbolic things for operators is that because they lack a "case", they don't play well with mushing. [A&b] unmushes to [a: & b]... [a&b] unmushes to [a&b]... [a&B] unmushes to [a& b] .... and [A&B] unmushes to [a&b:] | 27-Jun-10 9:10 |
| 581 | Fork | It applies to for instance not Huffman encoding the names for the sheer sake of saving characters. The abbreviation has to line up with the Rebol word in some vaguely reasonable way. | 27-Jun-10 9:06 |
| 580 | Fork | Anyway, the various crack-smoking mods I'm doing (such as if-true-mu being able to take constants in the code block and evaluate to those constants without the brackets) are intended to be minor things... something one could quickly unlearn in Rebol programming and say "Oh, right, you need a block around that." Increasingly I'm backing off anything which is overly focused on character optimization at the price of creating a pattern that is too far off from a reasonable Rebol programming practice. | 27-Jun-10 9:05 |
| 579 | Fork | This "mushing" I've come up with is delicate, because of course I can't break Rebol's parser... so I have to work within it, and the language is beholden to what forms can be naturally combined without spaces vs. those that require them. | 27-Jun-10 9:01 |
| 578 | Fork | Originally I had "r" and "w" for "readin-mu" and "writeout-mu" but found that w for while was more frequent than the number of writes, and in fact I also found that my writeout was not as useful as print's default behavior, so I remapped w. These one-character decisions are in flux as I look at how some of my ideas are panning out in real solutions. | 27-Jun-10 8:59 |
| 577 | Fork | i (if-true-mu) and e (either-true-mu), which can be remapped but are by default mapped to their equivalents "IT" and "ET" (there's also WT for while-true) are pretty good one-character ones, but even those can be questionable. But they are reasonable defaults. The point of one-character-choices in Rebmu is to anticipate the need for flexibility for redefining them, to use as variables or whatever. | 27-Jun-10 8:57 |
| 576 | Fork | Empirically those are not good candidates for one character optimization. | 27-Jun-10 8:56 |
| 575 | Steeve | can't you use one char length for those ? OR AND NOT = | & ! | 27-Jun-10 8:55 |
| 574 | Fork | But by comparison, look at the ridiculous "Golfscript" solution which has to resort to shell scripting to loop the "stdin": http://stackoverflow.com/questions/1683857/code-golf-hourglass/1687686#1687686 | 27-Jun-10 8:55 |
| 573 | Fork | The "oh, and another thing..." part of supersetting the Rebol by staying pure to the dialect rules is the baby in all this bathwater. That's what will blow people's minds. I'm only scratching the surface there because I'm still working out the kinks. | 27-Jun-10 8:54 |
| 572 | Fork | http://stackoverflow.com/questions/1683857/code-golf-hourglass/3110684#3110684 | 27-Jun-10 8:53 |
| 571 | Fork | @Steeve ... but look at the "Doomsday Clock" modification to my hourglass solution | 27-Jun-10 8:53 |
| 570 | Fork | Also I changed AN for AND~ and OO for OR~ into "a~" and "o~", thus keeping consistency with the Rebol notation for prefix operations, because the prefix ones are the ones that make sense in character count minimization. I'm bending and thinking of what makes those look common and came up with "n~" for NOT, even though Rebol doesn't have a tilde after prefix NOT (since there's no infix not). So it's a balance of consistency. | 27-Jun-10 8:52 |
| 569 | Steeve | You will reinvent FORTH if you continue :) | 27-Jun-10 8:52 |
| 568 | Fork | (Which I will again say is not some kind of joke. It is trying to position Rebol as the leader in Code Golf, and I'm tuning it so that knowledge transfer with Rebol is as good as it can get. Random example: I did some tweaking so that now first+ isn't FP anymore, it's F+ and all the functions which end in "+" are understood as being in the family of those which modify their arguments. A+ FOO BAR is understood to add foo to bar and store the result in foo, for example.) | 27-Jun-10 8:48 |
| 567 | Fork | If Alias permits one to set up word equivalencies, then it's solving a problem I have with Rebmu. | 27-Jun-10 8:47 |
| 566 | Fork | I think there's a big gap between the usefulness of a spanish or Italian localization and a chinese localization. | 27-Jun-10 8:40 |
| 565 | Gabriele | ie. ALIAS is solving a problem that nobody has. | 27-Jun-10 8:39 |
| 564 | Gabriele | so I don't think anyone is "against" a localized rebol, it's just that noone is really interested in that. what happens is you start playing with it and think it's cool but you never actually use it (i did play with an italian version of REBOL in 1999 or something like that). | 27-Jun-10 8:38 |
| 563 | Gabriele | hmm, AFAIK, the reason Carl wanted to remove ALIAS is that in 10 years of R2 nobody ever really used it except to show what it can do. | 27-Jun-10 8:36 |
| 562 | Fork | Is it worse to have a Chinese programming ecosystem out there which you don't draw code from, or to have them all writing in Perl and Ruby and Python? | 27-Jun-10 8:35 |
| 561 | Fork | Like I say about web pages which have chinese characters in them... Google doesn't prohibit them or not index them. It knows not to show them to you unless you ask, if you don't speak Chinese. Or they translate it. With the kind of thinking you're promoting, you'd just say "they should write in English, that makes the world more compatible." | 27-Jun-10 8:35 |
| 560 | Fork | My point is, it wouldn't hurt anything in the existing ecosystem and who knows, maybe it would take off in China or wherever and create a new market. | 27-Jun-10 8:33 |
| 559 | Fork | If the existing Rebol community thought it was useful to create a localized version of Rebol, you probably would have done it by now. Because it wouldn't be hard. | 27-Jun-10 8:33 |
| 558 | Gabriele | I agree with Brian and Ladislav that "internationalization" of a programming language makes no sense at all. Not sure why only some americans think it does. :-) ALIAS may not be there in R3 but I'm not sure why you should be worried about R3 at this point; but in that case you can do the compilation on R3 and use ALIAS in R2, so I don't see it as a big issue even if you want to worry about R3. :) | 27-Jun-10 8:26 |
| 557 | Ladislav | Since English is not my native language, I have experiences with internationalization myself dating back to 1978, but the main result is, that such languages as the Do dialect e.g. are better when not internationalized. | 26-Jun-10 14:36 |
| 556 | Ladislav | Fork, you are right, that REBOL allows internationalization. Problem is, that there actually is no demand for internationalization of the Do dialect, so it would make sense mainly in other dialects. | 26-Jun-10 14:33 |
| 555 | Fork | @Gabriele: BrianH says alias is dooooomed. But he seems to have alternatives in mind. Hopefully something will exist allowing one to give names words in such a way that they pass equality tests despite different spellings... that would be a huge enabler for international markets, as I know of no text-based interpreted language able to cater to people in their own tongue the way Rebol can. | 26-Jun-10 11:14 |
| 554 | Gabriele | you can use ALIAS to "change" the words used by PARSE or any other dialect. | 26-Jun-10 7:33 |
| 553 | Fork | Which leads to the question of why map the words in the do dialect at all, and not just derebmu the whole thing before execution. (I think it's just a different way of thinking about what to do with the word map, not a tremendously big deal.) | 25-Jun-10 19:56 |
| 552 | Fork | I thought of writing a "derebmu" which converts things like "is" into "insert" just as a teaching tool. I now realize that it's essential to have this functionality for things like parse, which are dialects in their own right and look at the literal words. Hence Rebmu's PA for parse will have to take its rules argument and derebmu the block before execution. | 25-Jun-10 19:53 |
| 551 | Fork | I should start a Rebmu quotes page for what people say when I send it to them. "Reading the hourglass solution at first threatened to give me a brain aneurysm, but actually after reading this I now see you were up to with 'mushing'. Clever!" | 25-Jun-10 8:31 |
| 550 | BrianH | Yeah, and it can't be backported as mezzanine either (tried already). I'll request a native. | 25-Jun-10 8:10 |
| 549 | Fork | I didn't know Rebol 2 didn't have a "continue". | 25-Jun-10 7:17 |
| 548 | Fork | Just checked in Rebol 2 compatibility for Rebmu: http://github.com/hostilefork/rebmu/commit/eed98b9570ce957ca248dfd6c67b976ec651beb4 | 25-Jun-10 2:46 |
| 547 | Fork | I also backed of on overwriting the definition of "IF". The letter "i" now starts off mapped to "II" (which stands for "iiiiiiif...."). Similar rationale for "oo" as "ooooor..." which is the non-infix version, since infix is useless for code golf | 23-Jun-10 1:45 |
| 546 | Fork | There's an exception for runs with multiple characters in this class to make programming with ++, --, etc easier. If multiple characters in this class appear in a row then they split the token. [a++B] => [a ++ b] [A++b] => [a: ++ b] ...but... [A++B] => [a++b:] [a++b] => [a++b] | 23-Jun-10 1:43 |
| 545 | Fork | Originally I had it breaking out symbols like - and + in such a way that they would cause token breaks, like [a-b] would go to [a - b]. But not only did that cause issues with common naming conventions (to-block, etc) it also wastes a lot of two-character tokenspace. So now [a-B] and [A-b] become [a- b], [A-B] becomes [a-b:], [a-b] stays [a-b]. | 23-Jun-10 1:16 |
| 544 | Fork | As I predicted, it's actually not so bad. Especially when you can break into native Rebol at any point if you want to debug (so long as you use lowercase!) | 23-Jun-10 1:10 |
| 543 | Fork | I have been writing Rebmu programs in actual Rebmu, as opposed to writing them in Rebol and then translating, as a test of how "bad" it is: http://github.com/hostilefork/rebmu/tree/master/examples/ | 23-Jun-10 1:10 |
| 542 | Fork | In my opinion, standardizing Rebmu would be far wiser than decisions in Rebol/Core like defining Q to be QUIT (I've pointed out how accidents involving this make Rebol seem like it crashes, like when you do APPEND [N O P] Q and forget the quote mark on Q). | 18-Jun-10 23:20 |
| 541 | Fork | EITHER-MU and its bretheren are factored into what is called the "mulibrary.r", which can be used independently of Rebmu. Though you never would. :) | 18-Jun-10 23:09 |
| 540 | Fork | Such a feature would be too error-prone in an ordinary Rebol program to be worth the savings, but it is essential in shaving off characters | 18-Jun-10 23:06 |
| 539 | Fork | Hence you can do things like pEf{Hello}{Goodbye} and get the effect of PRINT EITHER F [{Hello}] [{Goodbye}] | 18-Jun-10 23:05 |
| 538 | Fork | @Maxim: I've tinkered a little with the semantics, but tried to make it so that the abbreviated Rebmu primitives only extend the reactions to datatypes which Rebol currently throws errors on. For instance, the letter "e" is mapped to "either-mu", which can handle things like constants or functions in the clause block. | 18-Jun-10 23:04 |
| 537 | Maxim | maybe not the semantics as much as the syntax, but its such a different approach that its sort of a blur between both IMHO. | 18-Jun-10 19:30 |
| 536 | Maxim | Fork, you should make a sort of white paper on the power of Dialecting in REBOL using Rebmu as a reference. Your language shows just how powerfull REBOL's Domain Specific Language capabilities are. Its a result of applying dialecting to a very specific Domain, but its still pretty much General Purpose . I think that If its well written, without bias and personal opinion on REBOL itself, it would make the cut for a nice article on REBOL.com's web site as an article on the subject. its just my POV, but marketing information on this, with factual, non-trivial, examples is very scarce on the REBOL web site. I think Carl would welcome such a complete example. you've litterally transformed the semantics of the language, yet can still interpret it within REBOL. | 18-Jun-10 19:29 |
| 535 | Gregg | Fun stuff Brian. | 18-Jun-10 19:07 |
| 534 | Steeve | Interesting challenge, I will live the evening trying to find something... | 18-Jun-10 17:13 |
| 533 | Anton | Fork, those code golf challenges are interesting, and I'm glad you're working on it.
I came up with a method for rendering links perfectly in an AltME-style display.
http://anton.wildit.net.au/rebol/doc/overlaid-hyperlink-text-face.r It's a pity that AltME hasn't been improved with this method. If I had access to AltME message display code I could work it in. | 18-Jun-10 12:48 |
| 532 | Fork | (Being forced to fire up a VM that is willing to run AltME, having it mangle my links, and be unable to do "shift up" and have my entire line selected or get a right click menu is... well, I'm a sympathetic audience, but there's just no comparison to how slick StackOverflow is.) | 18-Jun-10 10:53 |
| 531 | Fork | Well it's more fun if I'm not doing it alone!! Note that Code Golf answers are wikis, and rebmu is quite easy for Rebol programmers to grasp, easy to improve--I think it could be a showcase that might get the language in front of "fringe"/"outlier" developers. (And earn perhaps a bit more respect than RebolTutorial's questions, though I will say that the visibility he's given by doing Q&A on a modern medium is better than nothing...any publicity is better than no publicity, the popularity of a tag in sheer number counts is rather important.) | 18-Jun-10 10:51 |
| 530 | Sunanda | The link is probably fine. It's a problem with View that AltME inherits. Some of us will see it fine, others see it a little screwed. Resizing the window can make the problem go away. Usually the link is clickable. Good luck with converting the golfers! | 18-Jun-10 10:44 |
| 529 | Fork | Anyway, if you look at the active community of people who like to tinker in code golf, I think they're freaky and obsessive enough to perhaps appreciate that Rebol is not only terse, but powerful in a generic way. Note the solution from the guy solving this dot connection problem on the commodore 64 in screen memory. Well, trying to solve, it fails on edge conditions | 18-Jun-10 10:39 |
| 528 | Fork | Nope, it's just going to screw up the link. Well that's an argument for another time, but here's the link to the overall question and you can find my solution: http://stackoverflow.com/questions/2527477/code-golf-connecting-the-dots/ | 18-Jun-10 10:36 |
| 527 | Fork | http://stackoverflow.com/questions/2527477/code-golf-connecting-the-dots/3066878#3066878 | 18-Jun-10 10:36 |
| 526 | Fork | AltMe put a wacky thing in that link, I'll try again | 18-Jun-10 10:36 |
| 525 | Fork | Here in the connect-the-dots problem challenge, I use the Rebmu dialect to best the winning perl solution (at the moment) http://stackoverflow.com/questions/2527477/code-golf-connecting-the-dots/3066878#3066878 | 18-Jun-10 10:35 |
| 524 | Fork | My goal is to write "obvious" code in the Rebmu dialect which defines primitives and has structure that makes the perl stuff look like the backwards garbage it is, and still beat them on character count. | 18-Jun-10 10:34 |
| 523 | Fork | A "code golf" question on StackOverflow caught my attention yesterday, and especially the frustrating ability of perl to win these competitions with utterly disgusting code which is unmodifiable with the slightest change in spec motivated me to resurrect my rebol dialect for code golfing. | 18-Jun-10 10:33 |
| 522 | Anton | I'm doing a filtering dialect facing similar problems.
Examples: [msg-id] = [ 10 .. 50 ] ; msg-id must be between 10 and 50. [msg-id] = [ .. 50 ] ; msg-id must be any number up to 50. [msg-id] = [ 50 .. ] ; msg-id must be 50 or beyond. [group] = [ "Dialects" ] ; group name must be "Dialects" [msg] = [ .. "import" .. ] ; message text must contain "import" [msg] = [ all [[ .. "import" .. ] [ .. "dialect" .. ] ] ] ; message text must contain "import" AND also contain "dialect". [user] = [any [ "Chris" "Anton" ] ] ; user name must be any of "Chris" or "Anton" | 27-May-10 14:58 |
| 521 | Chris | import [opts ["1" "20" "46"]][opts: block! [integer! is between 1 50]] | 5-Mar-10 4:53 |
| 520 | Chris | For example ["1" "20" "46"] might represent options where input requested integers between 1 and 50. Successful validation would return [1 20 46] whereas ["1" "foo"] would fail as foo is not an integer. | 5-Mar-10 4:51 |
| 519 | Chris | I should clarify that this is mainly used for validating user input. | 5-Mar-10 4:46 |
| 518 | Chris | I'm rethinking the behaviour of my 'import dialect (library: http://bit.ly/rebimport ) when working with structured data. At it's simplest form, 'import filters a block of key-string pairs based on a supplied set of constraints: import [a "1"][a: integer! is more-than 0] == [a 1] ; or none if the constraints are not met There are two nested forms I'd like to support: 1) a continuation of key-value blocks [a [b "1"]] and 2) a block of values [c ["b" "1" "foo"]] The first could just be a recursive function or parse call. The second needs a little more thought - on the face of it, it could just verify the contents conform to a preset group: [ ["a" "b"] contains some of ["a" "b" "c"] ] (or any of), which'd be fine for validating web form input (eg. multi-select list), but would rule out, say, a JSON block containing objects (as key-value pairs). I'm trying to figure out if this is overkill or a genuinely useful way of validating structured data... Then there's ["1" "2" "3"] <- be nice to validate as [some integer!] or [some integer! | decimal!]. I don't want it to be overly complex, but it should at least be useful - anyone have any conventional cases for validating a block of strings? | 5-Mar-10 4:43 |
| 517 | Sunanda | Never knew it as a kid's game, but the Two Ronnies spun it into a TV sketch: http://www2.prestel.co.uk/cello/swedish.htm | 13-Jan-10 18:33 |
| 516 | Reichart | I recall a childrens book from England when I was a child where each of the cartoon children in the book spoke in mostly single letters, it was something like: Boy - I C U Girl - I C U 2 Boy - R U HP Girl - I M HP Boy - U R A QT It was a bit silly, but well made, and they had some MUCH BETTER tricks of this than I have given from memory. | 13-Jan-10 18:13 |
| 515 | Fork | Of course to make that worth it you would have to use rej more than twice: rejREJ = RrejRr :) | 13-Jan-10 5:19 |
| 514 | Fork | I'm also thinking that it's better to use three-letters for things rather than use letter combinations that don't make sense. If you run out of things RE can be (RETURN, REJOIN, REPEND, etc.) then the answer is not to pick one and make it RZ for no reason... but to pick the least likely to use in code golf and go to three letters. If this is a problem for any particular challenge they can just write (for instance) Rrej at the beginning of the code and then have a shorthand. | 13-Jan-10 5:18 |
| 513 | Fork | I've had some internal debates on questions like whether LN should be LENGTH? or if I should make any Rebol identifier that ends in a ? also have a ? in it. These are some tricky questions, but on that particular decision (for instance) I've decided that the ? in the name is something important to keep. | 13-Jan-10 5:10 |
| 512 | Fork | And of course, you can use multiple characters whenever you so wish, even using the full Rebol words for things. | 13-Jan-10 5:09 |
| 511 | Fork | Well, Rebmu has a set of starting definitions for one letter things. So s starts out as the empty string, i starts out as IF. You can redefine these things. | 13-Jan-10 5:09 |
| 510 | Graham | Basic had one letter variables | 13-Jan-10 5:08 |
| 509 | Fork | Rebmu now has a fledgling homepage/logo/rationale: http://hostilefork.com/rebmu/ | 13-Jan-10 5:06 |
| 508 | Fork | Saw some posts to the Rebol list about Intentional Programming, I still have hopes. | 9-Jan-10 10:35 |
| 507 | Fork | I also changed continue's shortcut from CO to CN because I wanted CO for compose. Every time you change something it wrecks everything. I know text files have their... um... way. But I still want computers to step up to the plate and give every reference a UUID. Someday... | 9-Jan-10 10:34 |
| 506 | Fork | Okay maybe just one k. Reason is I reformed the spec so that n, j, k were default defined to 0 as integers and had a rewrite in the middle. | 9-Jan-10 10:32 |
| 505 | Fork | So there are some k's in the commented version that should be js. So it is when you're trying to maintain a document in wordpress. :( | 9-Jan-10 10:30 |
| 504 | Fork | >> unmush/deep [rSfeCs[Nse[i1v5x10l50c100d500m1000]twCi~J[JnCN]Kk+elJn[alN-j N0]'jJn]pK+j] == [r s fe c s [n: se [i 1 v 5 x 10 l 50 c 100 d 500 m 1000] tw c i ~ j [j: n cn] k: k + el j n [al n - j n: 0] 'j j: n] p k + j] | 9-Jan-10 10:29 |
| 503 | Fork | Stevee: good catch, the commented version is not in sync with the decompiled version (as I said, day 1 of this, lots of back and forth). If you run unmush you get: | 9-Jan-10 10:28 |
| 502 | Steeve | k: k + ...
k: n k always erased with n | 9-Jan-10 10:20 |
| 501 | Steeve | something wrong in your code (although i didn't test it) | 9-Jan-10 10:18 |
| 500 | Fork | The only "new" trick for me in writing the above was ALSO. BrianH clued me into it this week when he used it adapting my proposal for correcting the object none leak: http://rebol.net/wiki/Talk:Scoping_in_Rebol | 9-Jan-10 9:57 |
| 499 | Fork | But I'm on the fence. Commenting is too important, and if you can't comment code and have it not count against your golf score something is wrong. | 9-Jan-10 9:54 |
| 498 | Fork | I was contemplating the good and bad of a "mush" function, and I think I'm against it, because it undermines my point--namely that you should be able to write this code without assistance from a tool. | 9-Jan-10 9:53 |
| 497 | Fork | ; The following initial declarations are implicit ; k: 0 ; j: 0 ; s: "" ; readin senses the type of the argument and fulfills that from input readin-mu s foreach c s [ ; n is the current digit value n: select [ i 1 v 5 x 10 l 50 c 100 d 500 m 1000 ] to-word-mu c ; if previous digit value is zero ; capture current digit and continue ; inversion is like not but supports 0 as false if inversion-mu j [ j: n continue ] ; based on whether the previous digit value is ; less than the current one, we decide what to ; add to the total. If we need subtract the ; previous digit then we also carry over the ; current digit into the next addition k: k + either-lesser?-mu j n [also n - j n: 0] [j] ; save current digit as the previous digit ; (note that it is possibly zero) k: n ] ; if lingering previous value is not zero ; it will be added here k + j | 9-Jan-10 9:52 |
| 496 | Steeve | actually i would like to see your example in plain rebol. | 9-Jan-10 9:52 |
| 495 | Fork | Nope, not playing. I didnt spend much time on the roman numeral function, it's incidental. Those code golfers were tweaking, I was writing plain and simple code. What do you mean "roman-num"? | 9-Jan-10 9:50 |
| 494 | Steeve | don't play dumb :-) | 9-Jan-10 9:42 |
| 493 | Fork | Stevee: Hm? I don't know what you are referring to. I wrote the roman numeral function from scratch, in a fairly naive way. | 9-Jan-10 9:37 |
| 492 | Steeve | btw, what is the sourc of the roman-num function you use "in clear" | 9-Jan-10 9:18 |
| 491 | Fork | The punch line being the one Sunanda alludes to: Rebol can play this game as well as languages designed to play *only* this game, but that's just the tip of the iceberg. | 9-Jan-10 9:01 |
| 490 | Fork | (refer to http://en.wikipedia.org/wiki/Roman_numerals#Symbols ) | 9-Jan-10 9:00 |
| 489 | Fork | I'd put as a challenge to the Rebol community to refine Rebmu (or a similar syntax) to the point where they can submit an answer to code golf challenges that demonstrates some awesome feature of Rebol while still being in striking distance of the "winning" answer. I thought that perhaps showing Rebol 3.0 extending the roman numeral system to support higher order numerals than 1000 through unicode characters for M with a bar over it, etc. would be a good one. | 9-Jan-10 8:58 |
| 488 | Fork | The fact that you can read and write it without assistive technology is good, but you'd certainly prefer to use the normal syntax. | 9-Jan-10 8:49 |
| 487 | Fork | I don't know that I'd propose this for anything other than code golf. Its saving grace is that it doesn't screw up Rebol or its legal syntax for dialects, while making it quite competitive in such contests. | 9-Jan-10 8:48 |
| 486 | Henrik | Could an offshoot of this be a method for thumb coding? I'd love an app for phones which allow you to write code solely with your thumb. | 9-Jan-10 8:47 |
| 485 | Fork | I think the second commandment is my favorite: "Thou shalt not worship graven images." :) | 9-Jan-10 8:46 |
| 484 | Fork | Sunanda: The idea of a minor modification to the challenge and seeing what that does to the program is a good one; I would do that with interview candidates who knew the "right" solution to a problem (due to studying or seeing it before)... just introduce some whimsical constraint they hadn't memorized... | 9-Jan-10 8:44 |
| 483 | Steeve | so you could use returns to replace closing square brackets for example, saving more chars | 9-Jan-10 8:44 |
| 482 | Fork | Not unless it's part of the program function (e.g. you use it in a multi-line character constant bounded by braces to get a carriage return in your target program) | 9-Jan-10 8:43 |
| 481 | Steeve | is the return carriage counted as a char or not ? | 9-Jan-10 8:36 |
| 480 | Fork | Just of the code kind...and given Tiger Woods latest publicity I think I'll steer clear for now of the real sport :) | 9-Jan-10 8:34 |
| 479 | Steeve | at least, make a birdy | 9-Jan-10 8:34 |
| 478 | Steeve | well, do you play Golf or not ? | 9-Jan-10 8:33 |
| 477 | Fork | What Rebol can do is solve the problem and then do a coup-de-grace, like upload the results to a web server or something crazy like that. | 9-Jan-10 8:33 |
| 476 | Fork | I think of it as "rebol mooshed" or "rebol microscopic" or "rebol please unask this development method" :) | 9-Jan-10 8:33 |
| 475 | Steeve | REBIRDY would be a better suitable name for your dialect ;-) | 9-Jan-10 8:32 |
| 474 | Fork | >> rebmu [rSfeCs[Nse[i1v5x10l50c100d500m1000]twC (probe n) i~J[JnCN]Kk+elJn[alN-j N0]'jJn]pK+j] Input String: XIV 10 1 5 14 | 9-Jan-10 8:31 |
| 473 | Fork | Obviously people who do code golf come to it from different perspectives, I think Rebol's key here is just to engage by giving lively and flexible solutions which pique interest. I intentionally didn't clone the deranged "winner" of the roman numeral contest because he'd thrown out the program logic, it was no longer source code. I can edit, debug, and insert probe messages into mine easily. | 9-Jan-10 8:30 |
| 472 | Fork | 5. you do not bring your sony robot, night vision goggles, laser guidance systems, etc. onto the golf course. You bring a bag of sticks and you use your own arm, eyes, and brain. | 9-Jan-10 8:27 |
| 471 | Sunanda | My other main article point was: 4. Real golf has 18 holes per round. Most code golf plays just one hole. To be more realistic, there should be at least three holes -- ie after the first hole's scores are published, the challenge setter makes a modification to the challenge. Scores for that hole are (somehow) equated to the amount of original code the survives. | 9-Jan-10 8:25 |
| 470 | Steeve | Generally Rebolers don"t make any difference with dialects parsing a string or a loaded block. It's called dialect as-well. | 9-Jan-10 8:25 |
| 469 | Fork | Sunanda: I feel from my experience with parse that it's the sort of thing that can, if it fits your problem, help you a great deal... but it often seems to be just short of the needed functionality. I feel if your task does not depend on knowing the true/false result of matching, then series operations are often better. I've been thinking "if you don't use the boolean result of parse, you probably aren't working on a task that needs parse." | 9-Jan-10 8:24 |
| 468 | Fork | Sunanda: Rebol definitely could get some publicity with empathetic people if it were to embrace the code golfers... | 9-Jan-10 8:22 |
| 467 | Fork | Saves 40%. The colons and the spaces are intertwined issues, just due to the rules of Rebol. And I feel that if the dialect wasn't parseable Rebol but a string it wouldn't rightfully be called a Rebol dialect. | 9-Jan-10 8:20 |
| 466 | Fork | [r s fe c s [n: se [i 1 v 5 x 10 l 50 c 100 d 500 m 1000] tw c i ~ j [j: n cn] k: k + el j n [al n - j n: 0] 'j j: n] p k + j] | 9-Jan-10 8:19 |
| 465 | Fork | Then look at what it unmushes to: | 9-Jan-10 8:19 |
| 464 | Fork | Look at the Roman Numerals program [rSfeCs[Nse[i1v5x10l50c100d500m1000]twCi~J[JnCN]Kk+elJn[alN-j N0]'jJn]pK+j] | 9-Jan-10 8:19 |
| 463 | Steeve | i agree for saving spaces | 9-Jan-10 8:19 |
| 462 | Fork | Stevee: But my point is you're forgetting the spaces, which are needed too, since colons cannot appear in words. | 9-Jan-10 8:18 |
| 461 | Steeve | only to save ":" what a tremendeous gain !!! :-) | 9-Jan-10 8:18 |
| 460 | Fork | Well, I understand the concern, but I didn't do it just to be weird. :) | 9-Jan-10 8:17 |
| 459 | Sunanda | Following some thoughts of Christoph Budzinski back in December, I wrote a short article on an approach to REBOL code golf last month......It takes quite a different approach to yours. But as it was never published, your approach must have priority :) What I suggested in the article was: 1. we create a private group here to thrash out the principles and practicesl then launch a set of REBOL code golf challenges 2. current code golf is seriously flawed as it counts characters not lexical elements: variable1: variable1 + variable2 is much better code than: v1: v1 + v2 and should have the same golf score 3. in REBOL, the First Rule of Code Golf is: Parse always wins (this has been empirically observed over many REBOL code challenges) | 9-Jan-10 8:17 |
| 458 | Steeve | avthe=avoid | 9-Jan-10 8:17 |
| 457 | Steeve | ok i understand, i just proposed to avthe burden caused by a safe alternance of letter's casing | 9-Jan-10 8:16 |
| 456 | Fork | From 5 chars down to 3, and it's legal to the Rebol parser. | 9-Jan-10 8:16 |
| 455 | Fork | >> unmush ['aB] == ['a b:] | 9-Jan-10 8:16 |
| 454 | Fork | I showed you my answer to get ['a b:] in a brief notation | 9-Jan-10 8:15 |
| 453 | Fork | I'm just playing devil's advocate for your suggestion to go putting colons in the input when the goal is to minimize source representation. | 9-Jan-10 8:15 |
| 452 | Steeve | 'AB: has no meaning | 9-Jan-10 8:14 |
| 451 | Steeve | what is the interest to try to construct something which has no sense in Rebol | 9-Jan-10 8:14 |
| 450 | Fork | >> parse {'AB:} [to end] == true | 9-Jan-10 8:14 |
| 449 | Fork | >> parse ['AB:] [to end] ** Syntax error: invalid "word-lit" -- "'AB:" ** Near: (line 1) parse ['AB:] [to end] | 9-Jan-10 8:13 |
| 448 | Steeve | it doesn't bother, parse has not the limitations you pointed | 9-Jan-10 8:12 |
| 447 | Fork | If I were taking strings, sky's the limit... but, what's the point? | 9-Jan-10 8:12 |
| 446 | Fork | That's the Rebol parser. I'm not taking strings as input, I'm taking Rebol blocks. It's a dialect. | 9-Jan-10 8:11 |
| 445 | Fork | >> unmush ['aB] == ['a b:] | 9-Jan-10 8:11 |
| 444 | Fork | >> unmush ['aB] == ['a b:] | 9-Jan-10 8:10 |
| 443 | Steeve | hey ! your parser is the weak point, it seems :-) | 9-Jan-10 8:10 |
| 442 | Fork | >> 'AB: ** Syntax error: invalid "word-lit" -- "'AB:" ** Near: (line 1) 'AB: | 9-Jan-10 8:10 |
| 441 | Fork | >> 'A:B ** Syntax error: invalid "word-lit" -- "A:B" ** Near: (line 1) 'A:B | 9-Jan-10 8:09 |
| 440 | Fork | There are other issues: | 9-Jan-10 8:09 |
| 439 | Fork | Er, ignore case | 9-Jan-10 8:08 |
| 438 | Fork | My goal was to only muck with words, which Rebol binding has promised to ignore | 9-Jan-10 8:07 |
| 437 | Fork | Implementation gets trickier if you're parsing urls, and you're impinging on the URL type at that point, which is an any-string and thus does give meaning to case. | 9-Jan-10 8:07 |
| 436 | Steeve | :-) | 9-Jan-10 8:07 |
| 435 | Fork | A character here, a character there... pretty soon you're talking about real whitespace! :) | 9-Jan-10 8:06 |
| 434 | Steeve | Yes i added a character but i don't have to take care of the correct alternation of uppercases | 9-Jan-10 8:05 |
| 433 | Fork | And you added a character :) | 9-Jan-10 8:04 |
| 432 | Fork | You're starting to tread on the question of taking away things and making a non-superset | 9-Jan-10 8:04 |
| 431 | Fork | >> type? A:B == url! | 9-Jan-10 8:04 |
| 430 | Steeve | "A:B" | 9-Jan-10 8:03 |
| 429 | Fork | Well you're free to work out an example of a better dialect but you'll be parsing URLs or something... like where I can do Ab to get a: b how would you get it? | 9-Jan-10 8:03 |
| 428 | Andreas | g~$ in vim, to switch case for everything from the cursor to the end of line | 9-Jan-10 8:02 |
| 427 | Andreas | and changing the case of text is something that can be relegated to a good editor :) | 9-Jan-10 8:01 |
| 426 | Steeve | "ABC" would mean [A B C] with this new system | 9-Jan-10 8:01 |
| 425 | Steeve | So what ? 3A | 9-Jan-10 8:01 |
| 424 | Fork | Every variable in your program in most cases will be only one letter. | 9-Jan-10 8:00 |
| 423 | Fork | Problem is that single character words play a huge part in this | 9-Jan-10 8:00 |
| 422 | Steeve | if each new word always begin with a capital letter, you don't have anymore the problem. You just lost the compression of the ":" char. Not a so huge loss | 9-Jan-10 7:59 |
| 421 | Fork | Anyway, I'm not very interested in the super estoeric algorithms but do note that people get upvoted significantly for small solutions in languages like J: http://en.wikipedia.org/wiki/J_(programming_language) | 9-Jan-10 7:59 |
| 420 | Fork | aaBBccDDeeFFgg... if you really do have a long long uninterrupted chain of that nature then there's a problem. But I bet usually a number or path or symbol would pop in there. | 9-Jan-10 7:57 |
| 419 | Fork | True, but renaming variables is a burden as well. As it happens, each numeric constant, symbol, or path operator breaks the chain so you get to start anew | 9-Jan-10 7:56 |
| 418 | Steeve | There is a burden. When you add Something inside a sequence, you may have to swap all the followings caps/tiny letters :-) | 9-Jan-10 7:55 |
| 417 | Fork | (As most joke languages are.) | 9-Jan-10 7:49 |
| 416 | Fork | (But good for a CS class, or whatever.) | 9-Jan-10 7:48 |
| 415 | Fork | Also it's not corrupting the language (much). If you learn this "rebmu" dialect you'll be learning a useful language and your knowledge will transfer. As opposed to GolfScript which is just garbage. | 9-Jan-10 7:48 |
| 414 | Fork | A little awkward, but, not so bad when compared to things that have disposed the entire program logic into constants like n=1;$.+=n/2-n%n=10**(494254%C/9)%4999while C=getc;p$. | 9-Jan-10 7:46 |
| 413 | Fork | Right. And in 1 day of getting used to it, I can pretty easily translate the above Roman Numeral code as I read it | 9-Jan-10 7:46 |
| 412 | Steeve | ok the point is that you may be able to understand the code with normal human abilities | 9-Jan-10 7:45 |
| 411 | Fork | The parse dialect also cannot execute as is. Thus are dialects. | 9-Jan-10 7:43 |
| 410 | Fork | I suppose technically you can base-64 encode by working it out on paper, but I think it has moved out of the domain of being program source code at that point. | 9-Jan-10 7:42 |
| 409 | Fork | My goal was to create a language you can program in on paper | 9-Jan-10 7:42 |
| 408 | Steeve | but in fact it's a little bit cheating, the code cannot be execute as-is. Is there a real difference with the following idiom used to shorten rebol sources >> do load decompress #64{...........} | 9-Jan-10 7:42 |
| 407 | Fork | Wait, that's a 72 character translater. The 77 one was different. :) | 9-Jan-10 7:37 |
| 406 | Fork | But I bet that it could put Rebol on the map as a code golf language. | 9-Jan-10 7:34 |
| 405 | Fork | Just came up with it last night, so, it's what it is | 9-Jan-10 7:34 |
| 404 | Fork | And I just pushed the source for a proof of concept to GitHub: http://github.com/hostilefork/Rebmu/blob/master/rebmu.r | 9-Jan-10 7:33 |
| 403 | Fork | http://hostilefork.com/2010/01/08/modest-proposal-for-code-golf-in-rebol/ | 9-Jan-10 7:33 |
| 402 | Fork | If you start a mushing sequence with a capital letter that indicates the desire for a set-word | 9-Jan-10 7:32 |
| 401 | Fork | rSfeCs[Nse[i1v5x10l50c100d500m1000]twCi~J[JnCN]Kk+elJn[alN-j N0]'jJn]pK+j | 9-Jan-10 7:32 |
| 400 | Fork | Here's a 77 character Roman Numeral to integer converter: | 9-Jan-10 7:32 |
| 399 | Steeve | and how do you decipher a set-word ? | 9-Jan-10 7:32 |
| 398 | Fork | Still parseable Rebol, but each time you switch the case it's a conceptual word break. | 9-Jan-10 7:31 |
| 397 | Steeve | interesting | 9-Jan-10 7:31 |