자연 경관을 건축하다.
27126 단어 numerosnaturaisfunctionalscalamath
Em matemática,osaxiomas de Peano는 자연건축을 허용한다.자연 환경 건설에 관한 이념은 알론도 오르건스가 공리를 명확히 한다는 것이다.
axiomas de maior import–ncia para a gente serão:
파스 베어.
드카라, 자연, 자연, 자연, 자연, 자연 등등.
당신의 정의는 무엇입니까?Sejam m e S(n)números naturais,definimos:
베레자!Vamos seguir para o Scala.Vamos come çar Definendo uma
abstract class Nat
는 자연의 대표다.import java.util.NoSuchElementException
abstract class Nat {
def isZero: Boolean
def predecessor: Nat
def successor: Nat
def + (that: Nat): Nat
def - (that: Nat): Nat
}
그동안 우리는 무식한 사람을'자연의 즐거움'이라고 정의할 수도 있고,'자연의 도움'이라고 할 수도 있다!O próximo passo, édefinir O objeto
Succ
(O successor) e descriver os métodos que foram listados na super classe dos dos dos naturais(예: quando executamas O método is zero paraum objeto success, esperamasque eleretrone false):class Succ(n: Nat) extends Nat {
def isZero: Boolean = false
}
Ótimo!Agora, 성공한 집행자는 성공하지 못했다.틀리다이것은 성공의 필요성이며, 그 전신은 중요한 예이다.성공한 사람, 성공한 사람.
Opróximo passoéimplementar Ométodo
predecessor
, 그 전신은 성공(n):class Succ(n: Nat) extends Nat {
def isZero: Boolean = false
def predecessor: Nat = n
}
증거가 확실하고 성공의 증거, 자연의 증거(가능한 증거는 제로), 오!Ométodo
successor
tambémé 자질구레함:class Succ(n: Nat) extends Nat {
def isZero: Boolean = false
def predecessor: Nat = n
def successor: Nat = new Succ(this)
}
이스토, 오, 성공자, 오, 성공자, 성공자, 성공자!주:quethis
는 자동 참고 프로젝트로 성공 사례(n).후임 = 성공(n)Agora, vamos 구현자 algo mais Diveido, o método
+
(soma) 준성공자:class Succ(n: Nat) extends Nat {
def isZero: Boolean = false
def predecessor: Nat = n
def successor: Nat = new Succ(this)
def +(that: Nat): Nat =
if (!that.isZero) new Succ(this + that.predecessor)
else this
}
O que O método+
faz?와모스 토마르는 S(S(0)+S(0))의 대표적인 대표이다.Agora, vamos implementar o método
-
, 이상주의자:class Succ(n: Nat) extends Nat {
def isZero: Boolean = false
def predecessor: Nat = n
def successor: Nat = new Succ(this)
def +(that: Nat): Nat =
if (!that.isZero) new Succ(this + that.predecessor)
else this
def -(that: Nat): Nat = {
if (that.isZero) this
else (this.predecessor - that.predecessor)
}
Vamos usar o mesmo 샘플 분석 método:predecessor
de ambos termos ao mesmo tempo,atéque o segundo termos se torne Zero!젤 퀸도 프리메로 테르모를 말씀하시는 건가요, 세공도를 말씀하시는 건가요?Teríamos umúmero Negato nesse caso!이것은 일종의 알고리즘이다. 부정이 아니라 실현이다. 형식의 오페라(알고리즘), 형식의 실현, 형식의 실현이다!Portato,vamos começar a implementar os métodos do objeto Zero!아심 코모 파라오 성공, 코모 메토도
isZero
:object Zero extends Nat {
def isZero: Boolean = true
}
사실 이것은 진정한 의미의 집행관이다.우리는
object
의 완전한 정의를 관찰했다.아니오, 이것은 전통입니다. 왜냐하면 Nat
전유 정보의 특정한 요소에 존재하기 때문입니다. '0급'의 특정한 요소가 아닙니다.Agora, vamos 구현자 ométodo
predecessor
제0단.클라라멘트, 페로 노임, 엘레디브-retronar와 전작 0:object Zero extends Nat {
def isZero: Boolean = true
def predecessor: Nat =
new throw java.util.NoSuchElementException("no predecessor for zero")
}
마스오파!Éclaro que o Zero não deve existir,como dita um dos axiomas.이것은 집행관이 없는 논쟁의 문제이다.전임자,jogue um erro(uma 예외)para vocyen,informando quen háum 전임자,para o Zero!Agora,implementando
successor
de Zero:object Zero extends Nat {
def isZero: Boolean = true
def predecessor: Nat =
new throw java.util.NoSuchElementException("no predecessor for zero")
def successor: Nat = new Succ(this)
}
Aqui, 이것은 성공의 예이고, 이것은 성공의 예이다.코모 가디토, 이 의미가 큰 자동차는 평범한 계층, 평범한 계층, 성공한 사람, 성공한 사람, 성공한 사람을 대표한다!Agora, soma
+
섹션 0으로 정의:object Zero extends Nat {
def isZero: Boolean = true
def predecessor: Nat = throw new NoSuchElementException("no predecessor for zero")
def successor: Nat = new Succ(this)
def + (that: Nat): Nat = new Succ(this)
}
코모 에스페라도, 모두 0 + 그, 그!파송 n+0=n!Por fim, como definir a subtra ço
-
para os casos Zero - 그게 뭐예요?object Zero extends Nat {
def isZero: Boolean = true
def predecessor: Nat = throw new NoSuchElementException("no predecessor for zero")
def successor: Nat = new Succ(this)
def + (that: Nat): Nat = new Succ(this)
def - (that: Nat): Nat =
if (that.isZero) Zero
else throw new java.util.NoSuchElementException("no negative naturals allowed")
}
노바멘트, 코모 니온 햄의 전임 파라오 제로, 파제모스 오·código jogar, 엘로 오 아타 파제 우마 우마 소마 다모 제로, 제로와 다르다!이것은 아주 좋은 결론이다. 그것은 자연스러운 건축이다.èfácil은 우리의 공리를 검증했다. 왜냐하면 우리의 공리는 우리의 공리에 관한 것이기 때문이다.
브린카르(Para brincar)는 걸출한 집행자
toString
입니다. 그는 걸출한 집행자입니다.카소가 아니라 아쉬운 사람이야.import java.util.NoSuchElementException
abstract class Nat {
def isZero: Boolean
def predecessor: Nat
def successor: Nat
def + (that: Nat): Nat
def - (that: Nat): Nat
}
class Succ(n: Nat) extends Nat {
def isZero: Boolean = false
def predecessor: Nat = n
def successor: Nat = new Succ(this)
def +(that: Nat): Nat =
if (!that.isZero) new Succ(this + that.predecessor)
else this
def -(that: Nat): Nat = {
if (that.isZero) this
else (this.predecessor - that.predecessor)
}
override def toString(): String = {
if (!n.isZero) "S(" + n.toString() + ")"
else "S(0)"
}
}
object Zero extends Nat {
def isZero: Boolean = true
def predecessor: Nat = throw new NoSuchElementException("no predecessor for zero")
def successor: Nat = new Succ(this)
def + (that: Nat): Nat = new Succ(this)
def - (that: Nat): Nat =
if (that.isZero) Zero
else throw new java.util.NoSuchElementException("no negative naturals allowed")
override def toString(): String = {
return "0"
}
}
Agora,vamos testar algumas operaões!val n = new Succ(new Succ(Zero)) // S(S(0))
val m = new Succ(new Succ(new Succ(Zero))) // S(S(S(0)))
val s = n + m // S(S(S(0))) + S(S(0))
Resultado:
val s: Nat = S(S(S(S(S(0)))))
val d = m - n // S(S(S(0))) - S(S(0))
Resultado:
val d: Nat = S(0)
Zero + m
Resultado:
val res1: Nat = S(S(S(0)))
m + Zero
Resultado:
val res1: Nat = S(S(S(0)))
PS 2: N ão citei em nenhum momento, masóbvio que podemos traduzir nossaço notaço para a notaço 상습적인 자연 상태, istoé:Reference
이 문제에 관하여(자연 경관을 건축하다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lemos10/construindo-os-numeros-naturais-em-scala-3oke텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)