Apologizes for the top posting,

No indenting exists for this previously, it's a language (currently
unnamed) I'm writing as an experiment in functional programming and to
learn to parse.


I can't think of any other markers really, the syntax for the language is
pretty minimalistic, here's a quicksort implementation that has 95% of the
language in it:

quicksort (ls) :=
    if (= (length ls) 1)
        ls
        (let
            pivot = car ls,
            less  = filter (lambda(x) -> < x pivot) (cdr ls),
            more  = filter (lambda(x) -> >= x pivot) (cdr ls),
            in:
                append (quicksort less) (cons pivot (quicksort more)));

main := quicksort [1 2 3 5 18 4 1 4 1 4]

Since () are used to group function applications their extremely common. I
was originally thinking a syntax similar to Scheme's or Common Lisp's might
do it, but I'm confused how they manage it based on their indent files, I'm
still pretty newbie-ish at this sort of vim stuff.



On Thu, Nov 29, 2012 at 6:08 PM, Benjamin R. Haskell <v...@benizi.com> wrote:

> [Reversed the top-posting, per list preference]
>
>
> On Thu, Nov 29, 2012 at 5:24 PM, Danny Gratzer wrote:
>
>  I am writing an indentation script for a simple language. The language is
>> has very simple constructs and the indentation really only has 3 rules:
>>
>> 1. A comment has goes from a // until a newline, anything in a comment
>> should be ignored.
>>
>> 2. If the line above contains a semi-colon, the indentation should be 0.
>>
>> 3. Otherwise, indent to 1 more than the most recent unbalanced ( and to 4
>> spaces if all paranthesis are balanced.
>>
>> The last rule is kinda stumping me, does anyone have any advice?
>>
>
> Don't write the indent file if you don't have to. What language are you
> trying to indent?
>
> Indenting gets slow if you have to scan the whole file.  Unless you're
> never dealing with at-all long files.  Is there anything other than
> semi-colons and parenthesis (im)balance that can be used for resetting
> indentation?
>
>
>
> On Thu, Nov 29, 2012 at 5:27 PM, Danny Gratzer wrote:
>
>  Oh actually 1 more rule
>>
>> 4. If the line above matches "let:$", or "in:$" where $ is the end of
>> line, indent by 1 more than this line.
>>
>
> On Thu, 29 Nov 2012, Danny Gratzer wrote:
>
>  Excuse me, rule 3. should read:
>>
>> 3. Otherwise, indent to 1 more than the most recent unbalanced ( and to
>> the
>> same level as the last line if all parenthesis are balanced and no other
>> rules apply.
>>
>
> It'd be helpful to see some samples of what you're trying to indent.
> Especially to see whether the scan all the way to the start of the file can
> be avoided.
>
> --
> Best,
> Ben
>
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit 
> http://www.vim.org/maillist.**php<http://www.vim.org/maillist.php>
>



-- 
Danny Gratzer

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to