quarta-feira, 5 de março de 2008

Coisas esquecidas pelo caminho

Tentando descobrir uma solução para alguns problemas no Caché/Ensemble da Intersystems, me deparo com o seguinte pedaço de código:

i ..sqlcode'=-0 q


Para os não-iniciados em Caché Object Script (a linguagem do Caché):

i - abreviação do comando if!!! Oh yeah baby, em Caché ou você escreve if ou abrevia para um singelo i. Só isso já mereceria um WTF pra ele.

.. - indica que o elemento a seguir pertence a classe. Em Java seria this, em Pascal, self

sqlcode - apenas o identificador de uma variável local

'= - operador de diferença. Em Java seria !=, em Pascal, <>

q - abreviação do comando quit. O comando quit, ou q, como queiram, serve para: sair de um loop ou sair de um método. Em Java seria um break ou um return, respectivamente.

Agora o que não tem explicação é o "-0".

Por que alguém compara alguma coisa com menos zero, e não com zero? Tá certo que o Caché não é muito fã de matemática (vide a precedência de operadores), mas ele sabe que menos zero e zero são a mesma coisa. Ou será que não, para nossos intrépidos colegas da Intersystems?

Eu acho que alguém acabou esquecendo o sinal lá...

4 comentários:

Anônimo disse...

achei interessante o fato de abreviar o IF, afinal trata-se de economizar 50% da codificação. :-)

Helton Marinho disse...

talvez ele estava comparando com outro valor e depois colocou zero.. mas a resposta ideal seria "tem coisas que só o caché faz para você, para todas as outras existe oracle"

Hertu

CintiaYamane disse...

hohoho.. oia eu aqui tb! XD
o que é caché?? caché.. col??
um desodorante que atrai mulherada??

Anônimo disse...

Seria interessante voce deixar claro ao visitantes que o Caché em sua base é lexicográfico!!!

Fui...