Last active
February 27, 2017 22:30
-
-
Save moodmosaic/d44ef4123375683d6e6af308c7d4a641 to your computer and use it in GitHub Desktop.
Any updates from https://fsharpforfunandprofit.com/?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Last checked | |
| # $ date | |
| # Mon Feb 27 23:59:15 EEST 2017 | |
| 2017-02-17 https://fsharpforfunandprofit.com/cap/ | |
| 2017-02-17 https://fsharpforfunandprofit.com/turtle/ | |
| 2017-02-17 https://fsharpforfunandprofit.com/video/ | |
| 2016-12-05 https://fsharpforfunandprofit.com/posts/dependency-injection-1 | |
| 2016-08-01 https://fsharpforfunandprofit.com/installing-and-using/ | |
| 2016-06-23 https://fsharpforfunandprofit.com/parser/ | |
| 2016-04-12 https://fsharpforfunandprofit.com/posts/happy-fsharp-day-2 | |
| 2016-04-10 https://fsharpforfunandprofit.com/monadster/ | |
| 2016-03-07 https://fsharpforfunandprofit.com/ddd/ | |
| 2016-03-07 https://fsharpforfunandprofit.com/ettt/ | |
| 2016-03-07 https://fsharpforfunandprofit.com/fppatterns/ | |
| 2016-03-07 https://fsharpforfunandprofit.com/pbt/ | |
| 2016-03-07 https://fsharpforfunandprofit.com/rop/ | |
| 2015-12-07 https://fsharpforfunandprofit.com/site-contents/ | |
| 2015-12-06 https://fsharpforfunandprofit.com/posts/13-ways-of-looking-at-a-turtle-3 | |
| 2015-12-05 https://fsharpforfunandprofit.com/posts/13-ways-of-looking-at-a-turtle-2 | |
| 2015-12-05 https://fsharpforfunandprofit.com/posts/13-ways-of-looking-at-a-turtle | |
| 2015-11-15 https://fsharpforfunandprofit.com/series/understanding-parser-combinators.html | |
| 2015-11-13 https://fsharpforfunandprofit.com/posts/understanding-parser-combinators-4 | |
| 2015-11-12 https://fsharpforfunandprofit.com/posts/understanding-parser-combinators-3 | |
| 2015-11-11 https://fsharpforfunandprofit.com/posts/understanding-parser-combinators-2 | |
| 2015-11-10 https://fsharpforfunandprofit.com/posts/understanding-parser-combinators | |
| 2015-11-09 https://fsharpforfunandprofit.com/why-use-fsharp/ | |
| 2015-10-16 https://fsharpforfunandprofit.com/ | |
| 2015-09-01 https://fsharpforfunandprofit.com/rss.xml | |
| 2015-08-30 https://fsharpforfunandprofit.com/series/recursive-types-and-folds.html | |
| 2015-08-25 https://fsharpforfunandprofit.com/posts/recursive-types-and-folds-3b | |
| 2015-08-24 https://fsharpforfunandprofit.com/posts/recursive-types-and-folds-3 | |
| 2015-08-23 https://fsharpforfunandprofit.com/posts/recursive-types-and-folds-2b | |
| 2015-08-22 https://fsharpforfunandprofit.com/posts/recursive-types-and-folds-2 | |
| 2015-08-21 https://fsharpforfunandprofit.com/posts/recursive-types-and-folds-1b | |
| 2015-08-20 https://fsharpforfunandprofit.com/posts/recursive-types-and-folds | |
| 2015-08-14 https://fsharpforfunandprofit.com/posts/list-module-functions | |
| 2015-08-13 https://fsharpforfunandprofit.com/posts/type-size-and-design | |
| 2015-08-08 https://fsharpforfunandprofit.com/posts/elevated-world-7 | |
| 2015-08-07 https://fsharpforfunandprofit.com/posts/elevated-world-6 | |
| 2015-08-06 https://fsharpforfunandprofit.com/posts/elevated-world-5 | |
| 2015-08-05 https://fsharpforfunandprofit.com/series/map-and-bind-and-apply-oh-my.html | |
| 2015-08-05 https://fsharpforfunandprofit.com/posts/elevated-world-4 | |
| 2015-08-04 https://fsharpforfunandprofit.com/posts/elevated-world-3 | |
| 2015-08-03 https://fsharpforfunandprofit.com/posts/elevated-world-2 | |
| 2015-08-02 https://fsharpforfunandprofit.com/posts/elevated-world | |
| 2015-07-21 https://fsharpforfunandprofit.com/posts/typesafe-performance-with-compiler-directives | |
| 2015-07-18 https://fsharpforfunandprofit.com/posts/introvert-vs-extrovert | |
| 2015-07-16 https://fsharpforfunandprofit.com/series/handling-state.html | |
| 2015-07-15 https://fsharpforfunandprofit.com/posts/fsharp-decompiled | |
| 2015-07-09 https://fsharpforfunandprofit.com/posts/monadster-3 | |
| 2015-07-08 https://fsharpforfunandprofit.com/posts/monadster-2 | |
| 2015-07-07 https://fsharpforfunandprofit.com/posts/monadster | |
| 2015-06-30 https://fsharpforfunandprofit.com/posts/no-uml-diagrams | |
| 2015-04-12 https://fsharpforfunandprofit.com/posts/happy-fsharp-day | |
| 2015-02-17 https://fsharpforfunandprofit.com/csharp-light/ | |
| 2015-02-17 https://fsharpforfunandprofit.com/series/a-functional-approach-to-authorization.html | |
| 2015-02-17 https://fsharpforfunandprofit.com/series/annotated-walkthroughs.html | |
| 2015-02-17 https://fsharpforfunandprofit.com/series/low-risk-ways-to-use-fsharp-at-work.html | |
| 2015-02-16 https://fsharpforfunandprofit.com/posts/enterprise-tic-tac-toe-2 | |
| 2015-02-12 https://fsharpforfunandprofit.com/posts/enterprise-tic-tac-toe | |
| 2015-01-26 https://fsharpforfunandprofit.com/posts/is-your-language-unreasonable | |
| 2015-01-20 https://fsharpforfunandprofit.com/posts/capability-based-security-3 | |
| 2015-01-19 https://fsharpforfunandprofit.com/posts/capability-based-security-2 | |
| 2015-01-18 https://fsharpforfunandprofit.com/posts/capability-based-security | |
| 2014-12-12 https://fsharpforfunandprofit.com/posts/property-based-testing-2 | |
| 2014-12-01 https://fsharpforfunandprofit.com/posts/property-based-testing | |
| 2014-10-16 https://fsharpforfunandprofit.com/posts/calculator-complete-v2 | |
| 2014-10-15 https://fsharpforfunandprofit.com/posts/calculator-complete-v1 | |
| 2014-10-14 https://fsharpforfunandprofit.com/posts/calculator-implementation | |
| 2014-10-13 https://fsharpforfunandprofit.com/posts/calculator-design | |
| 2014-04-24 https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work-5 | |
| 2014-04-23 https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work-4 | |
| 2014-04-22 https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work-3 | |
| 2014-04-21 https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work-2 | |
| 2014-04-20 https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work | |
| 2014-04-12 https://fsharpforfunandprofit.com/posts/roslyn-vs-fsharp-compiler | |
| 2014-01-12 https://fsharpforfunandprofit.com/posts/roman-numeral-kata | |
| 2013-11-02 https://fsharpforfunandprofit.com/series/domain-driven-design-in-fsharp.html | |
| 2013-10-25 https://fsharpforfunandprofit.com/posts/monoids-part3 | |
| 2013-10-24 https://fsharpforfunandprofit.com/posts/monoids-part2 | |
| 2013-10-23 https://fsharpforfunandprofit.com/posts/monoids-without-tears | |
| 2013-10-23 https://fsharpforfunandprofit.com/posts/book-announcement | |
| 2013-10-21 https://fsharpforfunandprofit.com/series/understanding-monoids.html | |
| 2013-10-20 https://fsharpforfunandprofit.com/about/ | |
| 2013-10-20 https://fsharpforfunandprofit.com/subscribe.html | |
| 2013-07-02 https://fsharpforfunandprofit.com/csharp/union-types-in-csharp.html | |
| 2013-06-22 https://fsharpforfunandprofit.com/posts/railway-oriented-programming-carbonated | |
| 2013-06-12 https://fsharpforfunandprofit.com/series/dependency-cycles.html | |
| 2013-05-28 https://fsharpforfunandprofit.com/posts/cycles-and-modularity-in-the-wild | |
| 2013-05-27 https://fsharpforfunandprofit.com/posts/removing-cyclic-dependencies | |
| 2013-05-27 https://fsharpforfunandprofit.com/posts/cyclic-dependencies | |
| 2013-05-26 https://fsharpforfunandprofit.com/posts/recipe-part3 | |
| 2013-05-22 https://fsharpforfunandprofit.com/series/a-recipe-for-a-functional-app.html | |
| 2013-05-14 https://fsharpforfunandprofit.com/posts/why-i-wont-be-writing-a-monad-tutorial | |
| 2013-05-11 https://fsharpforfunandprofit.com/posts/recipe-part2 | |
| 2013-05-10 https://fsharpforfunandprofit.com/posts/recipe-part1 | |
| 2013-04-12 https://fsharpforfunandprofit.com/posts/ten-reasons-not-to-use-a-functional-programming-language | |
| 2013-02-16 https://fsharpforfunandprofit.com/series/computation-expressions.html | |
| 2013-01-30 https://fsharpforfunandprofit.com/posts/computation-expressions-builder-part6 | |
| 2013-01-29 https://fsharpforfunandprofit.com/posts/computation-expressions-builder-part5 | |
| 2013-01-28 https://fsharpforfunandprofit.com/posts/computation-expressions-builder-part4 | |
| 2013-01-27 https://fsharpforfunandprofit.com/posts/computation-expressions-builder-part3 | |
| 2013-01-26 https://fsharpforfunandprofit.com/posts/computation-expressions-builder-part2 | |
| 2013-01-25 https://fsharpforfunandprofit.com/posts/computation-expressions-builder-part1 | |
| 2013-01-24 https://fsharpforfunandprofit.com/posts/computation-expressions-wrapper-types-part2 | |
| 2013-01-23 https://fsharpforfunandprofit.com/posts/computation-expressions-wrapper-types | |
| 2013-01-22 https://fsharpforfunandprofit.com/posts/computation-expressions-bind | |
| 2013-01-21 https://fsharpforfunandprofit.com/posts/computation-expressions-continuations | |
| 2013-01-20 https://fsharpforfunandprofit.com/posts/computation-expressions-intro | |
| 2013-01-19 https://fsharpforfunandprofit.com/series/designing-with-types.html | |
| 2013-01-19 https://fsharpforfunandprofit.com/posts/designing-with-types-conclusion | |
| 2013-01-18 https://fsharpforfunandprofit.com/posts/designing-with-types-non-strings | |
| 2013-01-17 https://fsharpforfunandprofit.com/posts/designing-with-types-more-semantic-types | |
| 2013-01-16 https://fsharpforfunandprofit.com/posts/designing-with-types-representing-states | |
| 2013-01-15 https://fsharpforfunandprofit.com/posts/designing-with-types-discovering-the-domain | |
| 2013-01-14 https://fsharpforfunandprofit.com/posts/designing-with-types-making-illegal-states-unrepresentable | |
| 2013-01-13 https://fsharpforfunandprofit.com/posts/designing-with-types-single-case-dus | |
| 2013-01-12 https://fsharpforfunandprofit.com/posts/designing-with-types-intro | |
| 2012-09-25 https://fsharpforfunandprofit.com/learning-fsharp/ | |
| 2012-09-25 https://fsharpforfunandprofit.com/search.html | |
| 2012-09-06 https://fsharpforfunandprofit.com/series/object-oriented-programming-in-fsharp.html | |
| 2012-09-02 https://fsharpforfunandprofit.com/troubleshooting-fsharp/ | |
| 2012-08-27 https://fsharpforfunandprofit.com/series/lists-and-sequences.html | |
| 2012-08-27 https://fsharpforfunandprofit.com/series/porting-from-csharp.html | |
| 2012-08-02 https://fsharpforfunandprofit.com/posts/porting-to-csharp-getting-started | |
| 2012-08-01 https://fsharpforfunandprofit.com/posts/porting-to-csharp-intro | |
| 2012-07-17 https://fsharpforfunandprofit.com/posts/object-expressions | |
| 2012-07-16 https://fsharpforfunandprofit.com/posts/interfaces | |
| 2012-07-15 https://fsharpforfunandprofit.com/posts/inheritance | |
| 2012-07-14 https://fsharpforfunandprofit.com/posts/classes | |
| 2012-07-13 https://fsharpforfunandprofit.com/posts/object-oriented-intro | |
| 2012-07-12 https://fsharpforfunandprofit.com/posts/printf | |
| 2012-07-10 https://fsharpforfunandprofit.com/posts/units-of-measure | |
| 2012-07-10 https://fsharpforfunandprofit.com/posts/cli-types | |
| 2012-07-09 https://fsharpforfunandprofit.com/posts/type-inference | |
| 2012-07-09 https://fsharpforfunandprofit.com/posts/enum-types | |
| 2012-07-07 https://fsharpforfunandprofit.com/posts/stack-based-calculator | |
| 2012-06-30 https://fsharpforfunandprofit.com/posts/roman-numerals | |
| 2012-06-29 https://fsharpforfunandprofit.com/posts/pattern-matching-command-line | |
| 2012-06-28 https://fsharpforfunandprofit.com/posts/match-expression | |
| 2012-06-27 https://fsharpforfunandprofit.com/AnalyticsExclude.html | |
| 2012-06-24 https://fsharpforfunandprofit.com/series/recursion.html | |
| 2012-06-23 https://fsharpforfunandprofit.com/series/understanding-fsharp-types.html | |
| 2012-06-22 https://fsharpforfunandprofit.com/series/expressions-and-syntax.html | |
| 2012-06-12 https://fsharpforfunandprofit.com/series/optimization.html | |
| 2012-06-09 https://fsharpforfunandprofit.com/series/thinking-functionally.html | |
| 2012-06-08 https://fsharpforfunandprofit.com/series/why-use-fsharp.html | |
| 2012-06-07 https://fsharpforfunandprofit.com/posts/the-option-type | |
| 2012-06-06 https://fsharpforfunandprofit.com/posts/discriminated-unions | |
| 2012-06-05 https://fsharpforfunandprofit.com/posts/records | |
| 2012-06-04 https://fsharpforfunandprofit.com/posts/tuples | |
| 2012-06-03 https://fsharpforfunandprofit.com/posts/type-abbreviations | |
| 2012-06-02 https://fsharpforfunandprofit.com/posts/overview-of-types-in-fsharp | |
| 2012-06-01 https://fsharpforfunandprofit.com/posts/types-intro | |
| 2012-05-21 https://fsharpforfunandprofit.com/posts/exceptions | |
| 2012-05-20 https://fsharpforfunandprofit.com/posts/control-flow-expressions | |
| 2012-05-19 https://fsharpforfunandprofit.com/about/licence.html | |
| 2012-05-19 https://fsharpforfunandprofit.com/posts/naming-conventions | |
| 2012-05-18 https://fsharpforfunandprofit.com/posts/fsharp-syntax | |
| 2012-05-17 https://fsharpforfunandprofit.com/posts/understanding-fsharp-expressions | |
| 2012-05-17 https://fsharpforfunandprofit.com/posts/let-use-do | |
| 2012-05-16 https://fsharpforfunandprofit.com/posts/expressions-vs-statements | |
| 2012-05-15 https://fsharpforfunandprofit.com/posts/expressions-intro | |
| 2012-05-11 https://fsharpforfunandprofit.com/archives/ | |
| 2012-05-11 https://fsharpforfunandprofit.com/posts/type-extensions | |
| 2012-05-10 https://fsharpforfunandprofit.com/posts/organizing-functions | |
| 2012-05-09 https://fsharpforfunandprofit.com/posts/function-signatures | |
| 2012-05-08 https://fsharpforfunandprofit.com/posts/defining-functions | |
| 2012-05-07 https://fsharpforfunandprofit.com/posts/function-composition | |
| 2012-05-06 https://fsharpforfunandprofit.com/posts/partial-application | |
| 2012-05-05 https://fsharpforfunandprofit.com/posts/currying | |
| 2012-05-04 https://fsharpforfunandprofit.com/posts/how-types-work-with-functions | |
| 2012-05-03 https://fsharpforfunandprofit.com/posts/function-values-and-simple-values | |
| 2012-05-02 https://fsharpforfunandprofit.com/posts/mathematical-functions | |
| 2012-05-01 https://fsharpforfunandprofit.com/posts/thinking-functionally-intro | |
| 2012-04-30 https://fsharpforfunandprofit.com/posts/why-use-fsharp-conclusion | |
| 2012-04-29 https://fsharpforfunandprofit.com/posts/completeness-anything-csharp-can-do | |
| 2012-04-28 https://fsharpforfunandprofit.com/posts/completeness-seamless-dotnet-interop | |
| 2012-04-27 https://fsharpforfunandprofit.com/posts/completeness-intro | |
| 2012-04-26 https://fsharpforfunandprofit.com/posts/concurrency-reactive | |
| 2012-04-25 https://fsharpforfunandprofit.com/posts/concurrency-actor-model | |
| 2012-04-24 https://fsharpforfunandprofit.com/posts/concurrency-async-and-parallel | |
| 2012-04-23 https://fsharpforfunandprofit.com/posts/concurrency-intro | |
| 2012-04-22 https://fsharpforfunandprofit.com/posts/designing-for-correctness | |
| 2012-04-21 https://fsharpforfunandprofit.com/posts/correctness-type-checking | |
| 2012-04-20 https://fsharpforfunandprofit.com/posts/correctness-exhaustive-pattern-matching | |
| 2012-04-19 https://fsharpforfunandprofit.com/posts/correctness-immutability | |
| 2012-04-18 https://fsharpforfunandprofit.com/posts/correctness-intro | |
| 2012-04-17 https://fsharpforfunandprofit.com/posts/convenience-active-patterns | |
| 2012-04-16 https://fsharpforfunandprofit.com/posts/convenience-partial-application | |
| 2012-04-15 https://fsharpforfunandprofit.com/posts/convenience-functions-as-interfaces | |
| 2012-04-14 https://fsharpforfunandprofit.com/posts/convenience-types | |
| 2012-04-13 https://fsharpforfunandprofit.com/posts/convenience-intro | |
| 2012-04-12 https://fsharpforfunandprofit.com/posts/conciseness-pattern-matching | |
| 2012-04-11 https://fsharpforfunandprofit.com/posts/conciseness-functions-as-building-blocks | |
| 2012-04-10 https://fsharpforfunandprofit.com/posts/conciseness-extracting-boilerplate | |
| 2012-04-09 https://fsharpforfunandprofit.com/posts/conciseness-type-definitions | |
| 2012-04-08 https://fsharpforfunandprofit.com/posts/conciseness-type-inference | |
| 2012-04-07 https://fsharpforfunandprofit.com/posts/conciseness-intro | |
| 2012-04-06 https://fsharpforfunandprofit.com/posts/key-concepts | |
| 2012-04-05 https://fsharpforfunandprofit.com/posts/fvsc-download | |
| 2012-04-04 https://fsharpforfunandprofit.com/posts/fvsc-quicksort | |
| 2012-04-03 https://fsharpforfunandprofit.com/posts/fvsc-sum-of-squares | |
| 2012-04-02 https://fsharpforfunandprofit.com/posts/fsharp-in-60-seconds | |
| 2012-04-01 https://fsharpforfunandprofit.com/posts/why-use-fsharp-intro |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: SortW | |
| version: 0.0.1 | |
| build-type: Simple | |
| cabal-version: >=1.10 | |
| executable SortW | |
| main-is: SortW.hs | |
| build-depends: base, HTTP, parsec | |
| ghc-options: -Wall -fno-warn-unused-do-bind | |
| default-language: Haskell2010 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {-# LANGUAGE FlexibleContexts #-} | |
| {-# LANGUAGE MultiParamTypeClasses #-} | |
| module Main (main) where | |
| import Data.Function (on) | |
| import Data.Functor.Identity (Identity) | |
| import Data.List (sortBy) | |
| import Network.HTTP (getRequest, getResponseBody, simpleHTTP) | |
| import Text.Parsec (ParsecT, Stream, char, digit, letter, | |
| many, many1, noneOf, parse, spaces, | |
| string, try, (<|>)) | |
| data Xml = | |
| Elem String [Attribute] [Xml] | |
| | Decl String | |
| | Body String | |
| newtype Attribute = | |
| Attribute (String, String) | |
| root :: ParsecT String u Identity Xml | |
| root = Decl <$> (string "<?xml" *> many (noneOf "?>") <* string "?>") | |
| document :: ParsecT String () Identity [Xml] | |
| document = do | |
| spaces | |
| x <- try root <|> tag | |
| spaces | |
| y <- many tag | |
| spaces | |
| return (x : y) | |
| tag :: ParsecT String u Identity Xml | |
| tag = do | |
| char '<' | |
| spaces | |
| name <- many (letter <|> digit) | |
| spaces | |
| attr <- many attribute | |
| spaces | |
| try (string "/>" <|> string ">") | |
| body <- many (spaces *> try tag <|> text) | |
| endTag name | |
| spaces | |
| return $ Elem name attr body | |
| endTag :: Stream s m Char => String -> ParsecT s u m String | |
| endTag str = string "</" *> string str <* char '>' | |
| text :: ParsecT String u Identity Xml | |
| text = Body <$> many1 (noneOf "><") | |
| attribute :: ParsecT String u Identity Attribute | |
| attribute = do | |
| name <- many (noneOf "= />") | |
| spaces | |
| char '=' | |
| spaces | |
| char '"' | |
| value <- many (noneOf ['"']) | |
| char '"' | |
| spaces | |
| return $ Attribute (name, value) | |
| searchTag :: String -> [Xml] -> [Xml] | |
| searchTag _ [] = [] | |
| searchTag name (Decl _:xs) = searchTag name xs | |
| searchTag name (Body _:xs) = searchTag name xs | |
| searchTag name (Elem s attr x:xs) | |
| | s == name = Elem s attr x:searchTag name xs | |
| | otherwise = searchTag name (x ++ xs) | |
| extractBody :: Xml -> String | |
| extractBody (Elem _ _ (Body bd:_)) = bd | |
| extractBody _ = "" | |
| xmlParse :: String -> [Xml] | |
| xmlParse s = | |
| case parse document "" s of | |
| Right r -> r | |
| Left _ -> [] | |
| getUrl :: String -> IO String | |
| getUrl url = simpleHTTP (getRequest url) >>= getResponseBody | |
| main :: IO () | |
| main = do | |
| sitemapString <- getUrl "http://fsharpforfunandprofit.com/sitemap.xml" | |
| let parsedXml = xmlParse sitemapString | |
| find name = map extractBody $ searchTag name parsedXml | |
| formatted = unlines $ map | |
| (\x -> fst x ++ " " ++ snd x) | |
| (sortBy (flip compare `on` fst) $ zip (find "lastmod") (find "loc")) | |
| putStr formatted |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| resolver: lts-6.27 |
Author
moodmosaic
commented
Feb 27, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment