On Tue, Feb 9, 2016 at 6:08 AM, Bram Moolenaar <[email protected]> wrote:
>
> Takuya Fujiwara wrote:
>
>> On Mon, Feb 8, 2016 at 6:48 PM, Bram Moolenaar <[email protected]> wrote:
>> >
>> > [adjusted the subject, it was "Why is v:none needed"]
>> >
>> > Takuya Fujiwara wrote:
>> >
>> >> > [...]
>> >> >
>> >> > > >> let json = jsonencode({"key": v:none})
>> >> > > >> if json is v:none
>> >> > > >> echoerr 'error!'
>> >> > > >> return ...
>> >> > > >> endif
>> >> > > >
>> >> > > > Well, let's just return an empty string. Returning a different type
>> >> > > > often makes it more complicated.
>> >> > >
>> >> > > I agree.
>> >> > > However, I think "E706: Variable type mismatch" should be removed
>> >> > > becase it is not so useful for me...
>> >> >
>> >> > Where do you get that? Or do you mean that the sticky type checking
>> >> > isn't all that useful in general? I've been wondering whether we would
>> >> > be better off without it.
>> >>
>> >> I don't think it is useful in lightweight languages
>> >> (I don't think *only* a strict type checking is useful).
>> >> A strict type checking is useful for a language which has a strong type
>> >> system.
>> >> Because we can detect errors by different types, and so on.
>> >
>> > At the time it seemed like a good idea, to have some type checking to
>> > avoid mistakes. Over time I can't say this has uncovered a problem. I
>> > did run into the error when I didn't want it. Currently I think we
>> > might be better off without it.
>> >
>> > So, let's ask: who finds the sticky type checking useful?
>>
>> +1.
>>
>> I'll show a example here, why we might be better off a sticky type checking.
>
> Sorry, I'm confused. Do you +1 sticky type checking or the removal?
I +1 the removal, of cource! :)
I don't like it because I have so often struggled a type mismatch error...
>
>> for i in ['foo', 'bar', {'key': 'baz'}]
>> echo string(i)
>> endfor
>>
>> Will output:
>>
>> 'foo'
>> 'bar'
>> E706: Variable type mismatch for: i
>>
>> We need 'unlet i'.
>> It is easy to miss it...
>
> Well, this is both an argument for and against. It's helpful if you
> wanted to be warned about mixed types, it's annoying if you
> intentionally have mixed types.
>
>> for i in ['foo', 'bar', {'key': 'baz'}]
>> echo string(i)
>>
>> " If you :continue here, you need to :unlet in the condition, too...
>> if ...
>> unlet i
>> continue
>> endif
>>
>> " We need this always!
>> unlet i
>> endfor
>
> --
> hundred-and-one symptoms of being an internet addict:
> 184. You no longer ask prospective dates what their sign is, instead
> your line is "Hi, what's your URL?"
>
> /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
> /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
> \\\ an exciting new programming language -- http://www.Zimbu.org ///
> \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" 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
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.