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 Seg 22 Set 2014, 13:14
@Thelost escreveu:Eu pensei em colocar isso, talvez eu faça. Até seria legal, e é fácil de se implementar isso em C++, colocando em uma condição dentro da função. Porém, não sei como pegar o id do argumento desse modo. Até sei, mas seria muita gambiarra.
Dá pra fazer magica com template, template é uma linguagem funcional turing complete, é so você se aprofundar.
Não to com tempo pra explicar, quando voltar da escola eu explico como pega um certo argumento da variadic template.

______________________________
"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 Seg 22 Set 2014, 13:26
Bem, eu não estava utilizando variadicks, apenas usava o nome do argumento como ele mesmo na função c++. Melhor explicar com exemplos:

Código:
Upsilon:
function bar a b = a + b;

C++:
template <class t1, class t2> auto bar (t1 a, t2 b)
{
  return a + b;
}
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 Seg 22 Set 2014, 23:14
Bem, eu não estava utilizando variadicks, apenas usava o nome do argumento como ele mesmo na função c++. Melhor explicar com exemplos:
Mas você falou em id de argumento...? e em seguida o fabio falou de va_list?



______________________________
"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 Seg 22 Set 2014, 23:29
@LINK/2012 escreveu:
Bem, eu não estava utilizando variadicks, apenas usava o nome do argumento como ele mesmo na função c++. Melhor explicar com exemplos:
Mas você falou em id de argumento...? e em seguida o fabio falou de va_list?



Eu realmente achei que ele tava falando de algo relacionado com endereços dos argumentos, sei lá pokerface pokerface

______________________________

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 Ter 23 Set 2014, 12:43
Parâmetros*
Sempre me entorto pra falar de argumentos e parâmetros, são parecidos.
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 Ter 23 Set 2014, 22:56
ainda n entendi, deixa pra la entao :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 Sab 27 Set 2014, 19:41
~OK~

Mudei de novo.
Código:
in fib 1 = 1;
in fib 2 = 2;
in fib n = (fib with n - 1) + (fib with n - 2);
Onde este "with" funciona como o compositor de haskell ($).
E falando um pouco mais sobre, eu fiquei um tempo parado, fazendo nada no código, mas voltei agora, vou iniciar com calma isso, vou fazer cada parte com atenção e cuidado, afinal, tenho todo o tempo do mundo para isso.
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 Dom 28 Set 2014, 02:09
@Thelost escreveu:~OK~

Mudei de novo.
Código:
in fib 1 = 1;
in fib 2 = 2;
in fib n = (fib with n - 1) + (fib with n - 2);
Onde este "with" funciona como o compositor de haskell ($).
E falando um pouco mais sobre, eu fiquei um tempo parado, fazendo nada no código, mas voltei agora, vou iniciar com calma isso, vou fazer cada parte com atenção e cuidado, afinal, tenho todo o tempo do mundo para isso.

Não seria mais certo você "documentar" toda a sua linguagem antes de fazer o compilador?

______________________________

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 Dom 28 Set 2014, 02:21
@Fabio escreveu:
@Thelost escreveu:~OK~

Mudei de novo.
Código:
in fib 1 = 1;
in fib 2 = 2;
in fib n = (fib with n - 1) + (fib with n - 2);
Onde este "with" funciona como o compositor de haskell ($).
E falando um pouco mais sobre, eu fiquei um tempo parado, fazendo nada no código, mas voltei agora, vou iniciar com calma isso, vou fazer cada parte com atenção e cuidado, afinal, tenho todo o tempo do mundo para isso.

Não seria mais certo você "documentar" toda a sua linguagem antes de fazer o compilador?
exatamente
also o maior desafio em fazer uma linguagem não é o compilador mas a documentação!

______________________________
"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 28 Set 2014, 13:27
Eu nunca fiz uma documentaçã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 Seg 29 Set 2014, 15:37
Isso tudo é muito lindo.
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 10250
Reputação : 264
Desde : 08/11/2012
Ver perfil do usuário
  • Reputação da mensagem: 100% (2 votos)

Re: climbu - Uma linguagem simples

em Ter 30 Set 2014, 16:07
Gente, tou com um ótimo progresso no upsilon, tá tão fluído programar que, em pouco tempo, já desenvolvi o manuseamento de parênteses/colchetes/chaves. Esse modo de programar aqui é muito pika.
avatar
Mensagens Nível 5
Mensagens Nível 5
Mensagens : 666
Reputação : 32
Desde : 01/09/2014
Idade : 20
Ver perfil do usuário

Re: climbu - Uma linguagem simples

em Ter 30 Set 2014, 16:57
@Thelost escreveu:Isso tudo é muito lindo.
E assim nasce um Hacker (WARY)
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 30 Set 2014, 17:28
facepalm
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 02 Out 2014, 14:06
~RECURSOS DA LINGUAGEM~

Bem, tou desenvolvendo um tipo de comprehension list, parecido com o contido em ruby e haskell, mas de modo diferente. Na verdade, é apenas uma maneira simples de criar listas mais específicas.
Código:
list = [1, 5, 7, 4];
def doubleMe n = n * n

doubleMe each list // [1, 25, 49, 16]

doubleMe each [1, 5, 7, 4] // [1, 25, 49, 16]

{n = n * n} each [1, 2, 3] // [1, 4, 9]

list = [1..5] // [1, 2, 3, 4, 5]

{n = n ^ 2} each [1..5] // [1, 2, 9, 16, 25]

Ah, sim, as lambda functions são declaradas com chaves, desta maneira:
Código:
lambda = { a b = a + b }
lambda 2 6 // 8

Edit:
Tive a ideia disso hoje... Já terminei a implementação :)

Edit 2:
OK, BLZ, TERMINEI A PRIMEIRA PARTE DA LINGUAGEM.
Só preciso fazer o tradutor de Ast para instruções e, depois, para c++.
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 03 Out 2014, 13:00
Editei o tópico.
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 03 Out 2014, 16:15
Analisador de símbolos lexical refeito (Questões de melhor funcionamento).
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 Sab 04 Out 2014, 13:31

Acho que ficou meio grande.
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 Sab 04 Out 2014, 14:02
já sugeri isso antes (baseado em Python) mas vou reforçar a ideia
Código:
1 if n == 1 else 2 if n == 2 else (fibonacci with n - 1) + (fibonacci with n - 2)

mas, em relação a função em si, acho que ficaria melhor assim
Código:
n if n <= 3 else (fibonacci with n - 1) + (fibonacci with n - 2)
ou se preferir de forma 'mais natural'
Código:
n if n < 2 else (fibonacci with n - 1) + (fibonacci with n - 2)

______________________________
"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, 11:01
Não sei, isso fica meio estranho, não parece normal...


PS: n < 3, não n < 2.
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, 12:28
São os operadores ternários em Python
Como vai ser operador ternario?

Pra mim isso ai é foda, bastante expressivo, eu leio e ja leio o que tenho que ler, ta na ordem perfeita da leitura funcional
retorne n se n for menor que dois, caso contrario soma dos dois fibonacci anteriores
agora na ordem contrario
se n for menor que dois retorne n, caso contrario soma dos dois fibonacci anteriores
imperativamente imperativo.
E obviamente, nesse segundo caso, seria necessario por mais uma palavra pra separar a clausula do if com o que ele leva, no caso um then, mas que merda em


Última edição por LINK/2012 em Dom 05 Out 2014, 13:13, 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 Dom 05 Out 2014, 13:11
Eu ainda continuo achando que isso pode causar confusão. Até em haskell a condição if usa then e else, justamente para separar a condição em primeiro lugar, a resposta à ela, depois o caso contrário.
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:14
Operadores ternarios em Haskell usam simbulos, você ta falando da estrutura de uma condição tradicional.
http://www.haskell.org/haskellwiki/Ternary_operator
EDIT: rapaz isso é um trick mas foda-se, parece que não tem operator ternario


Última edição por LINK/2012 em Dom 05 Out 2014, 13:26, 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 Dom 05 Out 2014, 13:26
Tá, rapaz, tá. Eu vejo o que faç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 Dom 05 Out 2014, 13:29
O que acha disso?
Código:
hasEggs = false
hasMilke = false
hasBread = true

if | hasEggs -> buy eggs
  | hasMilke -> buy milke
  | hasBread -> buy bread
else buy nothing
Conteúdo patrocinado

Re: climbu - Uma linguagem simples

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