F-Sharp가 무한대를 지원하지 않는 이유가 궁금합니다.F-Sharp (F #) 유형 지정되지 않은 무한
이 루비에서 일 것이다 (그러나 F 번호에) :
let numbers n = [1 .. 1/0] |> Seq.take(n)
-> System.DivideByZeroException은 : 0으로 나눌 시도했습니다.
내가 훨씬 복잡한 방법으로 같은 기능을 쓸 수 있습니다 :
let numbers n = 1 |> Seq.unfold (fun i -> Some (i, i + 1)) |> Seq.take(n)
을 ->
그러나 내가 첫 번째가 훨씬 더 분명있을 것이라고 생각 작동합니다. F #에서 동적으로 입력 된 무한대를 쉽게 사용할 수있는 방법을 찾을 수 없습니다. 이 무한대 키워드이지만 부동입니다 :
let a = Math.bigint +infinity;;
System.OverflowException이를 : BigInteger를 무한대의 표시 수 없습니다. 에서 System.Numerics.BigInteger..ctor (Double 값) 에서 은 $ FSI_0045.main @는() 이
편집 오류로 인해 중지 :.
: 또한이 반복에서 작동하는 것 같다let numbers n = Seq.initInfinite (fun i -> i+1) |> Seq.take(n)
정수 또는 부동 소수점 연산을 수행합니까? 두 가지는 무한 성의 개념이 크게 다릅니다. –
Ruby에서는 작동하지 않습니다. Infinity는 Ruby에서도 부동 소수점 값이므로 부동 소수점 나누기 - 1..1.0/0을 수행해야합니다. – Chuck
이 특정 사례에서 'let numbers n = seq {1 .. n}'은 가장 간단한 것일 수 있습니다 ... –