MCIPFE - 칼쿨로 람다
5697 단어 elixirbraziliandevsfuncional
사가 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.
서지
add_one = fn(x) -> x+1 end
add_one(2)
#3
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.
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
Assistam é incrível
Reference
이 문제에 관하여(MCIPFE - 칼쿨로 람다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nathancaracho/mcipfe-calculo-lambda-3ma텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)