├── .gitattributes ├── .gitignore ├── Appendix ├── 01_no-imports │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ │ ├── packagea │ │ └── featurea.go │ │ └── packageb │ │ └── featureb.go ├── 02_dependency-with-import │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ │ ├── packagea │ │ └── featurea.go │ │ └── packageb │ │ └── featureb.go ├── 03_with-third-party-import │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ │ ├── packagea │ │ └── featurea.go │ │ └── packageb │ │ └── featureb.go └── README.md ├── Chapter01 ├── 01_oop │ └── cars.go ├── 02_fib │ ├── 01_simple.go │ ├── 01_simple_test.go │ ├── 02_memoize.go │ ├── 02_memoize_test.go │ ├── 03_channel.go │ └── 03_channel_test.go ├── 03_sum │ ├── 01_loop.go │ ├── 01_loop_test.go │ ├── 02_recursive.go │ ├── 02_recursive_test.go │ ├── 03_tailcall.go │ └── 03_tailcall_test.go ├── chapter1.go └── misc │ └── func_literal.go ├── Chapter02 ├── 01_iterator │ ├── init │ └── main.go └── misc │ └── ips.log ├── Chapter03 └── hof │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ └── hof │ ├── cars.csv │ ├── cars.go │ ├── generator.go │ ├── more_cars.csv │ ├── restful.go │ ├── types.go │ └── utils.go ├── Chapter04 ├── 01_duck │ ├── init │ └── main.go └── 02_misc │ ├── main.go │ └── misc.go ├── Chapter05 ├── 01_reader_writer │ ├── glide.lock │ ├── glide.yaml │ ├── init │ └── main.go ├── 02_decorator │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ ├── src │ │ ├── decorator │ │ │ ├── decorator.go │ │ │ ├── requestor.go │ │ │ └── simple_log.go │ │ └── easy_metrics │ │ │ └── metrics.go │ └── trace-log.txt └── misc │ ├── logs │ ├── console-log-book.txt │ ├── results.log │ ├── trace-log-book.txt │ └── trace-log.txt │ └── misc.go ├── Chapter06 ├── 01_dependency-rule-good │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ │ ├── packagea │ │ └── featurea.go │ │ └── packageb │ │ └── featureb.go ├── 02_circulardep │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ │ ├── packagea │ │ └── featurea.go │ │ └── packageb │ │ └── featureb.go ├── 03_observer │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ └── src │ │ └── observer │ │ ├── observer.go │ │ └── subject.go └── 04_onion │ ├── .gitignore │ ├── activate │ ├── config.toml │ ├── init │ ├── main.go │ └── src │ ├── domain │ ├── api.go │ ├── domain.go │ ├── file.go │ └── log_file.go │ ├── infrastructure │ ├── gcphandler.go │ ├── infrastructure_test │ │ └── localhandler_test.go │ └── localhandler.go │ ├── interfaces │ ├── gcpstorage.go │ ├── impl.go_STOP │ ├── interfaces_test │ │ └── webservice_test.go │ ├── localstorage.go │ ├── webservice.go │ └── webservice_helpers.go │ ├── usecases │ └── usecases.go │ └── utils │ ├── logger.go │ ├── options.go │ ├── utils.go │ └── utils_test │ └── utils_test.go ├── Chapter07 └── func-param │ ├── config.toml │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── main.go │ ├── src │ ├── server │ │ ├── server.go │ │ └── server_options.go │ └── utils │ │ ├── logger.go │ │ ├── options.go │ │ ├── utils.go │ │ └── utils_test │ │ └── utils_test.go │ ├── trace-debug-log.txt │ └── trace-log.txt ├── Chapter08 ├── 01_imperative │ ├── ex1.go │ ├── glide.lock │ ├── glide.yaml │ └── init ├── 02_concurrent │ ├── ex1.go │ ├── glide.lock │ ├── glide.yaml │ └── init ├── 03_buffered │ ├── ex1.go │ ├── glide.lock │ ├── glide.yaml │ └── init ├── 04_buffered_cpus │ ├── ex1.go │ ├── glide.lock │ ├── glide.yaml │ └── init └── main.go ├── Chapter09 ├── misc │ ├── ex1 │ │ └── anonymous.go │ ├── ex2 │ │ ├── lambda.go │ │ └── lambda.js │ ├── ex3 │ │ └── lambda.go │ └── ex4 │ │ └── typeinfer.go └── wip │ └── fpingo │ ├── config.toml │ ├── glide.lock │ ├── glide.yaml │ ├── init │ ├── lambda.go │ └── simple-functor.go ├── LICENSE ├── README.md └── fp-go-master.zip /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/.gitignore -------------------------------------------------------------------------------- /Appendix/01_no-imports/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/01_no-imports/glide.lock -------------------------------------------------------------------------------- /Appendix/01_no-imports/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/01_no-imports/glide.yaml -------------------------------------------------------------------------------- /Appendix/01_no-imports/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/01_no-imports/init -------------------------------------------------------------------------------- /Appendix/01_no-imports/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/01_no-imports/main.go -------------------------------------------------------------------------------- /Appendix/01_no-imports/src/packagea/featurea.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/01_no-imports/src/packagea/featurea.go -------------------------------------------------------------------------------- /Appendix/01_no-imports/src/packageb/featureb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/01_no-imports/src/packageb/featureb.go -------------------------------------------------------------------------------- /Appendix/02_dependency-with-import/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/02_dependency-with-import/glide.yaml -------------------------------------------------------------------------------- /Appendix/02_dependency-with-import/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/02_dependency-with-import/init -------------------------------------------------------------------------------- /Appendix/02_dependency-with-import/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/02_dependency-with-import/main.go -------------------------------------------------------------------------------- /Appendix/02_dependency-with-import/src/packagea/featurea.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/02_dependency-with-import/src/packagea/featurea.go -------------------------------------------------------------------------------- /Appendix/02_dependency-with-import/src/packageb/featureb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/02_dependency-with-import/src/packageb/featureb.go -------------------------------------------------------------------------------- /Appendix/03_with-third-party-import/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/03_with-third-party-import/glide.lock -------------------------------------------------------------------------------- /Appendix/03_with-third-party-import/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/03_with-third-party-import/glide.yaml -------------------------------------------------------------------------------- /Appendix/03_with-third-party-import/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/03_with-third-party-import/init -------------------------------------------------------------------------------- /Appendix/03_with-third-party-import/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/03_with-third-party-import/main.go -------------------------------------------------------------------------------- /Appendix/03_with-third-party-import/src/packagea/featurea.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/03_with-third-party-import/src/packagea/featurea.go -------------------------------------------------------------------------------- /Appendix/03_with-third-party-import/src/packageb/featureb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/03_with-third-party-import/src/packageb/featureb.go -------------------------------------------------------------------------------- /Appendix/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Appendix/README.md -------------------------------------------------------------------------------- /Chapter01/01_oop/cars.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/01_oop/cars.go -------------------------------------------------------------------------------- /Chapter01/02_fib/01_simple.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/02_fib/01_simple.go -------------------------------------------------------------------------------- /Chapter01/02_fib/01_simple_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/02_fib/01_simple_test.go -------------------------------------------------------------------------------- /Chapter01/02_fib/02_memoize.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/02_fib/02_memoize.go -------------------------------------------------------------------------------- /Chapter01/02_fib/02_memoize_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/02_fib/02_memoize_test.go -------------------------------------------------------------------------------- /Chapter01/02_fib/03_channel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/02_fib/03_channel.go -------------------------------------------------------------------------------- /Chapter01/02_fib/03_channel_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/02_fib/03_channel_test.go -------------------------------------------------------------------------------- /Chapter01/03_sum/01_loop.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/03_sum/01_loop.go -------------------------------------------------------------------------------- /Chapter01/03_sum/01_loop_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/03_sum/01_loop_test.go -------------------------------------------------------------------------------- /Chapter01/03_sum/02_recursive.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/03_sum/02_recursive.go -------------------------------------------------------------------------------- /Chapter01/03_sum/02_recursive_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/03_sum/02_recursive_test.go -------------------------------------------------------------------------------- /Chapter01/03_sum/03_tailcall.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/03_sum/03_tailcall.go -------------------------------------------------------------------------------- /Chapter01/03_sum/03_tailcall_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/03_sum/03_tailcall_test.go -------------------------------------------------------------------------------- /Chapter01/chapter1.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/chapter1.go -------------------------------------------------------------------------------- /Chapter01/misc/func_literal.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter01/misc/func_literal.go -------------------------------------------------------------------------------- /Chapter02/01_iterator/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter02/01_iterator/init -------------------------------------------------------------------------------- /Chapter02/01_iterator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter02/01_iterator/main.go -------------------------------------------------------------------------------- /Chapter02/misc/ips.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter02/misc/ips.log -------------------------------------------------------------------------------- /Chapter03/hof/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/glide.yaml -------------------------------------------------------------------------------- /Chapter03/hof/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/init -------------------------------------------------------------------------------- /Chapter03/hof/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/main.go -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/cars.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/cars.csv -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/cars.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/cars.go -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/generator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/generator.go -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/more_cars.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/more_cars.csv -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/restful.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/restful.go -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/types.go -------------------------------------------------------------------------------- /Chapter03/hof/src/hof/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter03/hof/src/hof/utils.go -------------------------------------------------------------------------------- /Chapter04/01_duck/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter04/01_duck/init -------------------------------------------------------------------------------- /Chapter04/01_duck/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter04/01_duck/main.go -------------------------------------------------------------------------------- /Chapter04/02_misc/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter04/02_misc/main.go -------------------------------------------------------------------------------- /Chapter04/02_misc/misc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter04/02_misc/misc.go -------------------------------------------------------------------------------- /Chapter05/01_reader_writer/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/01_reader_writer/glide.lock -------------------------------------------------------------------------------- /Chapter05/01_reader_writer/glide.yaml: -------------------------------------------------------------------------------- 1 | package: . 2 | import: [] 3 | ignore: 4 | 5 | -------------------------------------------------------------------------------- /Chapter05/01_reader_writer/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/01_reader_writer/init -------------------------------------------------------------------------------- /Chapter05/01_reader_writer/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/01_reader_writer/main.go -------------------------------------------------------------------------------- /Chapter05/02_decorator/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/glide.lock -------------------------------------------------------------------------------- /Chapter05/02_decorator/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/glide.yaml -------------------------------------------------------------------------------- /Chapter05/02_decorator/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/init -------------------------------------------------------------------------------- /Chapter05/02_decorator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/main.go -------------------------------------------------------------------------------- /Chapter05/02_decorator/src/decorator/decorator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/src/decorator/decorator.go -------------------------------------------------------------------------------- /Chapter05/02_decorator/src/decorator/requestor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/src/decorator/requestor.go -------------------------------------------------------------------------------- /Chapter05/02_decorator/src/decorator/simple_log.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/src/decorator/simple_log.go -------------------------------------------------------------------------------- /Chapter05/02_decorator/src/easy_metrics/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/src/easy_metrics/metrics.go -------------------------------------------------------------------------------- /Chapter05/02_decorator/trace-log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/02_decorator/trace-log.txt -------------------------------------------------------------------------------- /Chapter05/misc/logs/console-log-book.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/misc/logs/console-log-book.txt -------------------------------------------------------------------------------- /Chapter05/misc/logs/results.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/misc/logs/results.log -------------------------------------------------------------------------------- /Chapter05/misc/logs/trace-log-book.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/misc/logs/trace-log-book.txt -------------------------------------------------------------------------------- /Chapter05/misc/logs/trace-log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/misc/logs/trace-log.txt -------------------------------------------------------------------------------- /Chapter05/misc/misc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter05/misc/misc.go -------------------------------------------------------------------------------- /Chapter06/01_dependency-rule-good/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/01_dependency-rule-good/glide.lock -------------------------------------------------------------------------------- /Chapter06/01_dependency-rule-good/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/01_dependency-rule-good/glide.yaml -------------------------------------------------------------------------------- /Chapter06/01_dependency-rule-good/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/01_dependency-rule-good/init -------------------------------------------------------------------------------- /Chapter06/01_dependency-rule-good/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/01_dependency-rule-good/main.go -------------------------------------------------------------------------------- /Chapter06/01_dependency-rule-good/src/packagea/featurea.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/01_dependency-rule-good/src/packagea/featurea.go -------------------------------------------------------------------------------- /Chapter06/01_dependency-rule-good/src/packageb/featureb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/01_dependency-rule-good/src/packageb/featureb.go -------------------------------------------------------------------------------- /Chapter06/02_circulardep/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/02_circulardep/glide.lock -------------------------------------------------------------------------------- /Chapter06/02_circulardep/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/02_circulardep/glide.yaml -------------------------------------------------------------------------------- /Chapter06/02_circulardep/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/02_circulardep/init -------------------------------------------------------------------------------- /Chapter06/02_circulardep/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/02_circulardep/main.go -------------------------------------------------------------------------------- /Chapter06/02_circulardep/src/packagea/featurea.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/02_circulardep/src/packagea/featurea.go -------------------------------------------------------------------------------- /Chapter06/02_circulardep/src/packageb/featureb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/02_circulardep/src/packageb/featureb.go -------------------------------------------------------------------------------- /Chapter06/03_observer/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/03_observer/glide.lock -------------------------------------------------------------------------------- /Chapter06/03_observer/glide.yaml: -------------------------------------------------------------------------------- 1 | package: . 2 | import: [] 3 | ignore: 4 | - ./observer 5 | -------------------------------------------------------------------------------- /Chapter06/03_observer/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/03_observer/init -------------------------------------------------------------------------------- /Chapter06/03_observer/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/03_observer/main.go -------------------------------------------------------------------------------- /Chapter06/03_observer/src/observer/observer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/03_observer/src/observer/observer.go -------------------------------------------------------------------------------- /Chapter06/03_observer/src/observer/subject.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/03_observer/src/observer/subject.go -------------------------------------------------------------------------------- /Chapter06/04_onion/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/.gitignore -------------------------------------------------------------------------------- /Chapter06/04_onion/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/activate -------------------------------------------------------------------------------- /Chapter06/04_onion/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/config.toml -------------------------------------------------------------------------------- /Chapter06/04_onion/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/init -------------------------------------------------------------------------------- /Chapter06/04_onion/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/main.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/domain/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/domain/api.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/domain/domain.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/domain/domain.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/domain/file.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/domain/file.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/domain/log_file.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/domain/log_file.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/infrastructure/gcphandler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/infrastructure/gcphandler.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/infrastructure/infrastructure_test/localhandler_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/infrastructure/infrastructure_test/localhandler_test.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/infrastructure/localhandler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/infrastructure/localhandler.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/interfaces/gcpstorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/interfaces/gcpstorage.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/interfaces/impl.go_STOP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/interfaces/impl.go_STOP -------------------------------------------------------------------------------- /Chapter06/04_onion/src/interfaces/interfaces_test/webservice_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/interfaces/interfaces_test/webservice_test.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/interfaces/localstorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/interfaces/localstorage.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/interfaces/webservice.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/interfaces/webservice.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/interfaces/webservice_helpers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/interfaces/webservice_helpers.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/usecases/usecases.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/usecases/usecases.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/utils/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/utils/logger.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/utils/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/utils/options.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/utils/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/utils/utils.go -------------------------------------------------------------------------------- /Chapter06/04_onion/src/utils/utils_test/utils_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter06/04_onion/src/utils/utils_test/utils_test.go -------------------------------------------------------------------------------- /Chapter07/func-param/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/config.toml -------------------------------------------------------------------------------- /Chapter07/func-param/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/glide.lock -------------------------------------------------------------------------------- /Chapter07/func-param/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/glide.yaml -------------------------------------------------------------------------------- /Chapter07/func-param/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/init -------------------------------------------------------------------------------- /Chapter07/func-param/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/main.go -------------------------------------------------------------------------------- /Chapter07/func-param/src/server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/src/server/server.go -------------------------------------------------------------------------------- /Chapter07/func-param/src/server/server_options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/src/server/server_options.go -------------------------------------------------------------------------------- /Chapter07/func-param/src/utils/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/src/utils/logger.go -------------------------------------------------------------------------------- /Chapter07/func-param/src/utils/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/src/utils/options.go -------------------------------------------------------------------------------- /Chapter07/func-param/src/utils/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/src/utils/utils.go -------------------------------------------------------------------------------- /Chapter07/func-param/src/utils/utils_test/utils_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/src/utils/utils_test/utils_test.go -------------------------------------------------------------------------------- /Chapter07/func-param/trace-debug-log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/trace-debug-log.txt -------------------------------------------------------------------------------- /Chapter07/func-param/trace-log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter07/func-param/trace-log.txt -------------------------------------------------------------------------------- /Chapter08/01_imperative/ex1.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/01_imperative/ex1.go -------------------------------------------------------------------------------- /Chapter08/01_imperative/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/01_imperative/glide.lock -------------------------------------------------------------------------------- /Chapter08/01_imperative/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/01_imperative/glide.yaml -------------------------------------------------------------------------------- /Chapter08/01_imperative/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/01_imperative/init -------------------------------------------------------------------------------- /Chapter08/02_concurrent/ex1.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/02_concurrent/ex1.go -------------------------------------------------------------------------------- /Chapter08/02_concurrent/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/02_concurrent/glide.lock -------------------------------------------------------------------------------- /Chapter08/02_concurrent/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/02_concurrent/glide.yaml -------------------------------------------------------------------------------- /Chapter08/02_concurrent/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/02_concurrent/init -------------------------------------------------------------------------------- /Chapter08/03_buffered/ex1.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/03_buffered/ex1.go -------------------------------------------------------------------------------- /Chapter08/03_buffered/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/03_buffered/glide.lock -------------------------------------------------------------------------------- /Chapter08/03_buffered/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/03_buffered/glide.yaml -------------------------------------------------------------------------------- /Chapter08/03_buffered/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/03_buffered/init -------------------------------------------------------------------------------- /Chapter08/04_buffered_cpus/ex1.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/04_buffered_cpus/ex1.go -------------------------------------------------------------------------------- /Chapter08/04_buffered_cpus/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/04_buffered_cpus/glide.lock -------------------------------------------------------------------------------- /Chapter08/04_buffered_cpus/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/04_buffered_cpus/glide.yaml -------------------------------------------------------------------------------- /Chapter08/04_buffered_cpus/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/04_buffered_cpus/init -------------------------------------------------------------------------------- /Chapter08/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter08/main.go -------------------------------------------------------------------------------- /Chapter09/misc/ex1/anonymous.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/misc/ex1/anonymous.go -------------------------------------------------------------------------------- /Chapter09/misc/ex2/lambda.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/misc/ex2/lambda.go -------------------------------------------------------------------------------- /Chapter09/misc/ex2/lambda.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/misc/ex2/lambda.js -------------------------------------------------------------------------------- /Chapter09/misc/ex3/lambda.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/misc/ex3/lambda.go -------------------------------------------------------------------------------- /Chapter09/misc/ex4/typeinfer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/misc/ex4/typeinfer.go -------------------------------------------------------------------------------- /Chapter09/wip/fpingo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/wip/fpingo/config.toml -------------------------------------------------------------------------------- /Chapter09/wip/fpingo/glide.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/wip/fpingo/glide.lock -------------------------------------------------------------------------------- /Chapter09/wip/fpingo/glide.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/wip/fpingo/glide.yaml -------------------------------------------------------------------------------- /Chapter09/wip/fpingo/init: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/wip/fpingo/init -------------------------------------------------------------------------------- /Chapter09/wip/fpingo/lambda.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/wip/fpingo/lambda.go -------------------------------------------------------------------------------- /Chapter09/wip/fpingo/simple-functor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/Chapter09/wip/fpingo/simple-functor.go -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/README.md -------------------------------------------------------------------------------- /fp-go-master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Learning-Functional-Programming-in-Go/HEAD/fp-go-master.zip --------------------------------------------------------------------------------