エレファント・コンピューティング調査報告

極限に関する順序を論理プログラミングの手法を使って指定することを目指すブロクです。

2022-02-20から1日間の記事一覧

関数プログラミングと無限論理多項式(30)

Go の例(5) Go の例についても同様に修正します。UnfoldL 関数を作成します。 func UnfoldL(f func(*Numbers) (int, *Numbers), init *Numbers) *IteratorSimpleImpl_int { src := init dst := 0 next := func() bool { dst, src = f(src) return true } get…

関数プログラミングと無限論理多項式(29)

F# の例(5) 前回の F# 版では UnfoldL 関数を作成しましたが、Seq.unfold 関数を使えば良かったようです。NextDigitAndNumbers は以下のように変更します。値に Some がついています。 let NextDigitAndNumbers (numbers: Numbers): (int * Numbers) option …

関数プログラミングと無限論理多項式(28)

Python の例(4) Python 版も同様に修正します。Numbers クラスから CurrentDigit プロパティと current_digit を削除し、コピーするメソッドを追加します。 def Copy(self): return Numbers(self.number, self.square_difference, self.scale) UnfoldL 関数…

関数プログラミングと無限論理多項式(27)

F# の例(4) F# 版も同様に修正します。Numbers クラスから CurrentDigit プロパティと current_digit を削除し、コピーするメソッドを追加します。 member this.Copy(): Numbers = new Numbers(number, square_difference, scale) UnfoldL 関数を作成します…