From 7d45c6a961ded6f1b97f663a792ea3ea8758a721 Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Tue, 17 Oct 2017 23:19:24 +0800 Subject: [PATCH] add pragmatic-functional-programming --- pragmatic-functional-programming/README.md | 5 +++++ pragmatic-functional-programming/fx.png | Bin 0 -> 3652 bytes .../hashkell-logo.png | Bin 0 -> 20664 bytes pragmatic-functional-programming/lamda-logo.png | Bin 0 -> 3557 bytes pragmatic-functional-programming/lamda.jpeg | Bin 0 -> 7556 bytes 5 files changed, 5 insertions(+) create mode 100644 pragmatic-functional-programming/README.md create mode 100644 pragmatic-functional-programming/fx.png create mode 100644 pragmatic-functional-programming/hashkell-logo.png create mode 100644 pragmatic-functional-programming/lamda-logo.png create mode 100644 pragmatic-functional-programming/lamda.jpeg diff --git a/pragmatic-functional-programming/README.md b/pragmatic-functional-programming/README.md new file mode 100644 index 0000000..5827bb7 --- /dev/null +++ b/pragmatic-functional-programming/README.md @@ -0,0 +1,5 @@ +原文链接: [Pragmatic Functional Programming](http://blog.cleancoder.com/uncle-bob/2017/07/11/PragmaticFunctionalProgramming.html) - _Robert C. Martin (Uncle Bob)_,2017-07 + +# 务实的函数式编程 + + diff --git a/pragmatic-functional-programming/fx.png b/pragmatic-functional-programming/fx.png new file mode 100644 index 0000000000000000000000000000000000000000..97d98dd8004ab8f85d8dba0fb169fd86c039699b GIT binary patch literal 3652 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 AUjP6A literal 0 HcmV?d00001 diff --git a/pragmatic-functional-programming/lamda-logo.png b/pragmatic-functional-programming/lamda-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..66b21132f35dc7fed9cfc0601e161abd5486ffa0 GIT binary patch literal 3557 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 aJ^mk9hMCSbH&%%N0000