MCIPFE - 칼쿨로 람다

사가 MCIPFE



O Manual Completamente Incompleto de Programação Funcional com Elixir é uma série de postagens bem pequenas para explicar um pouco de programação funcional.

칼쿨로 람다



"No início eram apenas funções"

O cálculo lambda é a abstração de um sistema formal da matemática lógica baseado na substituição e mapeamento de valores, sendo a base do conceito de funções puras que temos hoje.

Usando símbolo λ (lambda), seguido do nome do paraâmetro e por fim a expressão.

우마 소마:



λx. x+1(λx. x+1)22+1=3
\lambda x.\;x + 1\newline
(\lambda x.\;x + 1)2\newline
2+1 =3
λx.x+1(λx.x+1)22+1=3



add_one = fn(x) -> x+1 end
add_one(2)
#3

No caso acima temos uma função simples que recebe um valor como paraâmetro (x) e retorna a soma do paraâmetro mais (+) 1, ou seja, substitui (x) por um valor e mapeia para expressão de (+1).

O poder de uma função



Com o conceito simples de mapeamento e substituição é possível construir qualquer coisa inclusive a logica booleana.

Lógica booleana de forma extremamente resumida é ideia que no universo só existem dois estados Verdadeiro ou Falso, contendo operadores como E, OU e NÃO.



Vamos criar a logica de Verdadeiro, Falso eo operator Negação.
O conceito de Negação é basicamente a inversão do valor booleano, dessa forma NÃO Falso é igual à Verdadeiro.

참=λx.λy. xfalse=λx.λy. y(λb. b 거짓 참)참(참 거짓 참)=거짓(λb. b 거짓 참)거짓(거짓 거짓 참)=참
참 =\lambda x.\lambda y.\;x\newline
거짓 =\lambda x.\lambda y.\;y\newline
(\lambda b.\;b\;false\;true) 참\newline
(참\;거짓\;참) = 거짓
(\lambda b.\; b\;false\; true) 거짓\newline
(거짓\;거짓\;참) = 참
참=λx.λy.xfalse=λx.λy.y(λb.bfalsetrue)true(truefalsetrue)=false(λb.bfalsetrue)false(falsefalsetrue)=true



lambda_true = fn(x, _) -> x end 
lambda_false = fn(_, y) -> y end 

lambda_not = fn(bool) -> 
   bool.(lambda_false,lambda_true) end

print = fn(bool) -> 
    IO.puts(bool.("true","false")) end

print.(lambda_not.(lambda_true)) #false
print.(lambda_not.(lambda_false)) #true


Já no exemplo acima criamos duas funçõestrue efalse que recebem dois paraâmetrosx ey , a funçãotrue retorna somente o paraâmetrox e a funçãofalse retorna somento14 o5 .
Para a y precisamos criar uma outra função que mapeie uma função booleana, negação ou true , em outra função booleana invertida.

결론



Mas qual a função do cálculo lambda no dia à dia? O cálculo lambda é a base do que conhecemos hoje como uma função, entender esse conceito, mesmo que de forma mais superficial, é a porta de entrada para entender outros conceitos de programação funcional.

서지


  • ÁLGEBRA BOOLEANA
  • Lambda calculus wikipedia

  • Assistam é incrível
  • Learn You a Haskell for Great Good!
  • 좋은 웹페이지 즐겨찾기