Compartilhe
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 13:37
daora

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 13:52
Código:
def fib n
  = if | n <= 3 -> n
    else
      let | fib1 = fib with n - 1
          | fib2 = fib with n - 2
      in
        fib1 + fib2

ficou... Bem, não sei exatamente.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 13:55
um horror.
trocou o then por -> e ai fez umas bagunça loca, prefiria nem ter falado nada pra se fazzer essas onda :v

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 14:01
Eu vou fazer a parada lá atrás, mas não para essa finalidade aí, só tentei viajar um pouco. (Só vou deixar no if)
E, pensando bem, rapaz, não vou mudar o if para ser um operador ternário. Afinal, há momentos em que o código pode ficar grande e não ser tão legal de se saber o quê faz o quê (prefiro ver a condição no topo do código).


Última edição por Thelost em Dom 05 Out 2014, 15:36, editado 1 vez(es)
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 14:09
Coloquei os sources no github (não, não está pronto ainda)
https://github.com/thelost1001/upsilon
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 14:21
@Thelost escreveu:E, pensando bem, rapaz, não vou mudar o if para ser terciário. Afinal, há momentos em que o código pode ficar grande e não ser tão legal de se saber o quê faz o quê (prefiro ver a condição no topo do código).
q
vou assumir que você quis dizer ternario, mas caralho, operador ternario é usado justamente em condições pequenas
nunca usou na vida nao porra?

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 15:04
@Thelost escreveu:
Código:
def fib n
  = if | n <= 3 -> n
    else
      let | fib1 = fib with n - 1
          | fib2 = fib with n - 2
      in
        fib1 + fib2

ficou... Bem, não sei exatamente.
kkkk achei uma bosta tbm

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Dom 05 Out 2014, 15:35
@LINK/2012 escreveu:
@Thelost escreveu:E, pensando bem, rapaz, não vou mudar o if para ser terciário. Afinal, há momentos em que o código pode ficar grande e não ser tão legal de se saber o quê faz o quê (prefiro ver a condição no topo do código).
q
vou assumir que você quis dizer ternario, mas caralho, operador ternario é usado justamente em condições pequenas
nunca usou na vida nao porra?
1 - É, escrevi errado.
2 - Já, mas só em C++. Usei pouco, não muito.

Sobre o símbolo |, é bastante usado em haskell, OCaml, enfim, linguagens funcionais. Se chamam guards. Dá pra usar guards com várias outras expressões.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 15:50
Funcionando:
https://dl.dropboxusercontent.com/u/40058824/Upsilon/UC001.zip

OBS: Não testei tudo ainda, mas já funciona mesmo assim.

Enfim, pra isso aí funcionar, você precisa ser a versão >4.9.1 do G++. Se não tiver o G++ (ou essa versão), ele gera o código mesmo assim (sem o executável).

Para compilar algo, use o comando:
Código:
./uc [EXE] [SOURCE]

Um exemplo:
Código:
Test.u:
def main = print "hello, world"

Código:
Compiling:
./uc test Test.u

Edit:
Oh, esqueci de avisar: O que separa as expressões é o "and".

Edit2:
E uma amostra de um hello world:
Código:
def main = print in "Hello, World!"

Edit3:
Sobre a documentação, será aquele "learning to program" no meu blog (Oh, sim, esqueçam por enquanto o que está escrito lá sobre o upsilon, irei refazer).

Edit4:
Caralho, isso é muito lindo:
Código:
def main = println with ({n = n * n} each [0..9]) take 4
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 17:21
"uma linguagem simples" q está deixando de ser simples

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 17:39
Ruby é simples;
Haskell é simples;
OCaml é simples;
Lisp é simples;
Um monte de outras são simples;

Mas, com todas elas, é possível escrever um código que pode ser demorado para se entender.
Sabe o que é complicado? Ter que ler um código em C++ com mais de 3000 linhas.
Sabe o que é simples? Ler um código nestas linguagens, que fazem a mesma coisa equivalentemente à c++, porém com 300 linhas.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21852
Reputação : 666
Desde : 03/05/2012
Idade : 21
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 17:52
eh q eu estava pensando nos outros sentidos do "simples"
o simples do "fácil" e nao o simples do "pequeno" :v:

por outro lado eu nao sei como tais funções são feitas em outras linguagens, entao melhor eu nem tentar dizer se eh facil ou nao :) nas outras devem ser mais complexas (ou nao)

______________________________

Mestre3224 voltou, ainda há esperanças no Youtube.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18776
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 18:17
@Thelost escreveu:Ruby é simples;
Haskell é simples;
OCaml é simples;
Lisp é simples;
Um monte de outras são simples;

Mas, com todas elas, é possível escrever um código que pode ser demorado para se entender.
Sabe o que é complicado? Ter que ler um código em C++ com mais de 3000 linhas.
Sabe o que é simples? Ler um código nestas linguagens, que fazem a mesma coisa equivalentemente à c++, porém com 300 linhas.

Esqueceu de listar python

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 23:12
@Junior_Djjr escreveu:"uma linguagem simples" q está deixando de ser simples
O problema é que você (e a maioria a fora) esta acostumada com o paradigma imperativo, que você diz como fazer em vez do que fazer, que seria no paradigma funcional.
Achei que a lang do TheLost ia ser uma mistura de funcional com imperativo mas ta parecendo so funcional @_@

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qua 08 Out 2014, 23:12
@Junior_Djjr escreveu:"uma linguagem simples" q está deixando de ser simples
O problema é que você (e a maioria a fora) esta acostumada com o paradigma imperativo, que você diz como fazer em vez do que fazer, que seria no paradigma funcional. Se você começasse em um paradigma funcional e visse uma linguagem imperativa você tambem ia achar complicado a primeira vista.
Achei que a lang do TheLost ia ser uma mistura de funcional com imperativo mas ta parecendo so funcional @_@

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18776
Reputação : 342
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: climbu - Uma linguagem simples

em Qui 09 Out 2014, 00:13
@LINK/2012 escreveu:
@Thelost escreveu:E, pensando bem, rapaz, não vou mudar o if para ser terciário. Afinal, há momentos em que o código pode ficar grande e não ser tão legal de se saber o quê faz o quê (prefiro ver a condição no topo do código).
q
vou assumir que você quis dizer ternario, mas caralho, operador ternario é usado justamente em condições pequenas
nunca usou na vida nao porra?

Imagine que da hora você precisar fazer um IF com umas 10 condições, o ternário vai parecer espaguete denilson gostoso denilson gostoso denilson gostoso

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qui 09 Out 2014, 12:31
@LINK/2012 escreveu:
@Junior_Djjr escreveu:"uma linguagem simples" q está deixando de ser simples
O problema é que você (e a maioria a fora) esta acostumada com o paradigma imperativo, que você diz como fazer em vez do que fazer, que seria no paradigma funcional.
Achei que a lang do TheLost ia ser uma mistura de funcional com imperativo mas ta parecendo so funcional @_@
No início, era para ser imperativa, mas eu vejo o funcional como um "recurso mais equipado".

PS: Você quis dizer que a funcional diz como fazer e, a imperativa, o que fazer, né?
@LINK/2012 escreveu:você (e a maioria a fora) esta acostumada com o paradigma imperativo, que você diz como fazer em vez do que fazer, que seria no paradigma funcional
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qui 09 Out 2014, 13:22
Acho que vou mudar a parada de compreensão de lista.
É que, tá feio demais essa parada aqui:
Código:
 { x = x / 2 * 10 } each [1..15]
Quero deixar desta maneira:
Código:
 (x / 2 * 10 for x in [1..15] when x^2 > 10)
Pois, com esse, dá pra colocar condições... Então sua fórmula seria:
Código:
 ( Result FOR Var IN List WHEN Condition)
É igual à utilizada no coffee-script, inclusive, eu gosto muito desse jeito aí.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qui 09 Out 2014, 14:35
Pronto. Só uma coisa: não consegui fazer uma paradinha maneira pra ficar sem parênteses no operador, então precisa usar parênteses apenas na primeira parte, algo como isso:
Código:
((x * 2) for x in [0..5] when x < 3)
No resto, podem abusar.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qui 09 Out 2014, 16:54
A "documentação" começa aqui
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qui 09 Out 2014, 21:31
@Thelost escreveu:Pronto. Só uma coisa: não consegui fazer uma paradinha maneira pra ficar sem parênteses no operador, então precisa usar parênteses apenas na primeira parte, algo como isso:
Código:
((x * 2) for x in [0..5] when x < 3)
No resto, podem abusar.
Precisa do parentese? em Python é sem parentese e fica bonito
Código:
list = [x*2 for x in range(5) if x < 3]

@TheLost
Contudo isso não é a spec :3
Veja um exemplo https://docs.python.org/2/reference/
Você precisa dizer cada detalhezinho da gramatica da linguagem etc de forma 'formal / academica / matematica'
Caralho, so falo de Python nesse topico, pqp


Última edição por LINK/2012 em Qui 09 Out 2014, 21:35, editado 1 vez(es)

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Sex 10 Out 2014, 06:58
Só não dá por eu não ter feito um sistema de precedência (Se bem que é fácil fazer, mas bah, depois eu faço).
Aliás, eu preciso de uma forma melhor para separar as expressões completas. No momento, estou usando o "and" (para um Eof) e separo as expressões por ele. Bem, eu pensei em separá-las pegando o que resta dos tokens de uma árvore de (ast, [token]) para fazer as próximas expressões. O problema é que algumas expressões são contínuas/sem fim, ou seja, não sobram tokens para se analisar.

Um exemplo são as chamadas de funções. Tudo o que estiver à frente da função é argumento, até achar alguma coisa que o pare (como parênteses etc).
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Seg 13 Out 2014, 07:31
Legal, vou ter que usar templates pra declarar as funções.
Bem, deixa-me explicar: para declarar funções, eu estou usando generic lambda (uso o auto pra todo lugar), mas assim não dá pra usar recursão (oh?). Que merda, viu.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Ter 14 Out 2014, 16:43
Olhem, eu fico atualizando o github, bls? Só pra avisar....

Enfim, eu fiz um código daorinha em upsilon, olhem só:
Código:
market = ["egg", "milk"];

def buy product
  = if product `elem` market
      then
        "I bought " ++ product ++ " on market."
      else
        "There's no " ++ product ++ " on market.";

println: buy: "egg";
println: buy: "vegetable";

Essa parada do `elem` eu ainda não implementei, mas tá na lista para implementação.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Qua 15 Out 2014, 09:28
Ok, implantei.
Conteúdo patrocinado

Re: climbu - Uma linguagem simples

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum