部分整理自 Parsing Techniques
##考古
#!/bin/bash | |
# NAME : fscan_v3.sh | |
# VERSION : v3 | |
# AUTHOR : FTS | |
# Example : sudo bash fscan_v3.sh 2008 2010 3001 3002 1 6 | |
# $1 lower-grade | |
# $2 upper-grade | |
# $3 lower-major |
#!/usr/bin/env stack | |
{- stack | |
--resolver lts-5.11 | |
--install-ghc | |
runghc | |
--package wreq | |
--package text | |
--package containers | |
--package lens | |
-} |
#Erik Meijer FP Foundamentals Notes
xs = take n xs ++ drop n xs
// 7:18|>
//9:50# Anonymous constructor | |
(&%{ok: &1}).(1) # => %{ok: 1} | |
Enum.map 1..5, &{&1, &1 * 2} # => [{1, 2}, {2, 4}, {3, 6}, {4, 8}, {5, 10}] | |
(&[1|&1]).(2) # => [1 | 2] | |
#macro | |
Enum.reduce items, %{}, fn item, map -> | |
Map.update(map, item, 1, & &1 + 1) | |
end |
defmodule CnId do | |
defp parse!(id) do | |
<<adcode :: 6-bytes, year :: 4-bytes, month :: 2-bytes, day :: 2-bytes, seq_code :: 3-bytes, check_code :: 1-bytes>> = id | |
%{ | |
adcode: adcode, | |
birthday: Date.from_iso8601!("#{year}-#{month}-#{day}"), | |
seq_code: seq_code, | |
check_code: check_code |