Новая книга от одного из авторов культовой SICP (Gerald Jay Sussman) и principal author of Scheme (Chris Hanson) - «Software Design for Flexibility. How to Avoid Programming Yourself into a Corner». Авторы задаются «извечным» вопросом о гибкости кода и как ее достичь. Судя по оглавлению речь пойдет о различных техниках и подходах от комбинаторов до DSL и динамического программирования. Звучит очень интересно! https://mitpress.mit.edu/books/software-design-flexibility.
https://t.me/tripovozkiknig/62
Книга про то как делать DDD методами функционального программирования (на F#, но многие аспекты применимы к ЯП без статической типизации)
PS2 Bios Download for PCSX2 & AetherSX2 Emulators | For All Regions
PS2 Bios Download (OFFICIAL) for PCSX2 & AetherSX2 Emulators
--
scph5500.bin 26-Aug-2018 20:47 512.0K
scph5501.bin 26-Aug-2018 20:47 512.0K
Here's a record of my experiences when setting up Void Linux for the first time, maybe it contains useful information for somebody :-)
- Laptop: Lenovo IdeaPad S340
- Void Linux installer version: 20191109 (x86_64 musl)
Общяя информация:
#!/usr/bin/env python | |
# encoding: utf-8 | |
import lxml.etree | |
import lxml.html | |
import requests | |
xml_sample = """<?xml version="1.0" encoding="UTF-8"?> | |
<foo:Results xmlns:foo="http://www.foo.com" xmlns="http://www.bah.com"> | |
<foo:Recordset setCount="2"> |
(* interleave 1 [2;3] = [ [1;2;3]; [2;1;3]; [2;3;1] ] *) | |
let rec interleave x lst = | |
match lst with | |
| [] -> [[x]] | |
| hd::tl -> (x::lst) :: (List.map (fun y -> hd::y) (interleave x tl)) | |
(*permutations [1; 2; 3] = [[1; 2; 3]; [2; 1; 3]; [2; 3; 1]; [1; 3; 2]; [3; 1; 2]; [3; 2; 1]] *) | |
let rec permutations lst = | |
match lst with | |
| hd::tl -> List.concat (List.map (interleave hd) (permutations tl)) |
FILE SPACING: | |
# double space a file | |
sed G | |
# double space a file which already has blank lines in it. Output file | |
# should contain no more than one blank line between lines of text. | |
sed '/^$/d;G' |