タグ

小飼弾とqiitaに関するkyo_agoのブックマーク (2)

  • Swift - Introducing PONS = Protocol Oriented Number System - Qiita

    まだ荒削りですが、お披露目してもいいところまで来たので。 https://github.com/dankogai/swift-pons 売り口上 これでSwiftでも GMPとか外部ライブラリなしで任意精度整数(BigInt)や任意精度分数(BigRat)や任意精度浮動小数点数(BigFloat)が使えるようになります。 外部依存がないので、Xcodeでなくてもswiftcがあれば使えます。もちろんOS XだけでなくてLinuxもサポート その任意精度数も、四則演算以外の演算を最初からサポートしています。整数は素数判定できますし、任意精度実数は<math.h>の関数を使えます。 これだけでもかなりハッピーになれます。 でも当のウリは、そこじゃないんですよ… 承前: 古き良きCの時代 例えばman powとしてみます。こんな答えが返ってくるでしょう。 SYNOPSIS #include <

    Swift - Introducing PONS = Protocol Oriented Number System - Qiita
  • Swiftの関数の引数は、常に一つ - Qiita

    だとしたら、Swiftではカリー化は不要ということになってしまう。 すなわち、ざっくり言うとカリー化とは複数の引数を1つに減らすことを指します - Swiftで関数のカリー化(currying)入門 Swiftの関数は、つねに一つの値を受け取り、一つの値を返すのだから。 以下のコードを動かしてみれば、それがわかる。 func call<A,R>(f:A->R, a:A)->R { return f(a) } func id(i:Int)->Int { return i } func add(x:Int, y:Int)->Int { return x + y } call(id, 42) // 42 call(add, (21,21)) // 42 上記のcall()は、「『型Aの値を一つだけ取って型Rの値を返す関数』と『型Aの値』を取って『型Rの値』を返す関数」なはずなのに、「IntとIn

    Swiftの関数の引数は、常に一つ - Qiita
  • 1