Just like Haskell, operators can be used as a function.
var d = 40
d + 1 // 41
(+)(d, 2) // 42
// | |
// cf. http://nomothetis.svbtle.com/smashing-swift | |
// | |
extension Dictionary { | |
func map<R>(transform:(ValueType)->R)->Dictionary<KeyType, R> { | |
var result:Dictionary<KeyType, R> = [:] | |
for (k, v) in self { | |
result[k] = transform(v) | |
} | |
return result |
#ifdef __cplusplus | |
extern "C" { | |
#endif /* __cplusplus */ | |
#include <stdio.h> | |
#include <ctype.h> | |
int isNaN(double d) { | |
char buf[32]; | |
sprintf(buf, "+%f", d); |
func memoize<A: Hashable, R>(block:(A, (A->R))->R)->(A->R) { | |
var memo:Dictionary<A,R> = [:] | |
var result:(A->R)! | |
result = { | |
if let l = memo[$0] { return l } | |
let r = block($0, result) | |
memo[$0] = r | |
return r | |
} | |
return result |
extension String { | |
static func fromUTF16Chars(utf16s:UInt16[]) -> String { | |
var str = "" | |
for var i = 0; i < utf16s.count; i++ { | |
let hi = Int(utf16s[i]) | |
switch hi { | |
case 0xD800...0xDBFF: | |
let lo = Int(utf16s[++i]) | |
let us = 0x10000 | |
+ (hi - 0xD800)*0x400 + (lo - 0xDC00) |
{print($0+$0.debugDescription+")")}("{print($0+$0.debugDescription+\")\")}(") |
/// See | |
/// https://github.com/rodionovd/SWRoute/wiki/Function-hooking-in-Swift | |
/// https://github.com/rodionovd/SWRoute/blob/master/SWRoute/rd_get_func_impl.c | |
/// to find why this works | |
func peekFunc<A,R>(f:A->R)->(fp:Int, ctx:Int) { | |
let (hi, lo):(Int, Int) = reinterpretCast(f) | |
let offset = sizeof(Int) == 8 ? 16 : 12 | |
let ptr = UnsafePointer<Int>(lo+offset) | |
return (ptr.memory, ptr.successor().memory) | |
} |
GNU ddrescue 1.19 | |
About to copy an unknown number of Bytes from /dev/rdisk2 to intel335.dmg. | |
Starting positions: infile = 0 B, outfile = 0 B | |
Copy block size: 128 sectors Initial skip size: 128 sectors | |
Sector size: 512 Bytes | |
Press Ctrl-C to interrupt | |
Initial status (read from logfile) | |
rescued: 240057 MB, errsize: 57344 B, errors: 7 |
Seems like all songs downloaded via Apple Music are DRM'ed w/ Fairplay. You can see it for yourself via ffprobe
available as a part of ffmpeg.
~/Music/iTunes/iTunes Media/Apple Music/${Artist}/${Album}/${Song}.m4p
Metadata:
[…]
Duration: 00:03:51.11, start: 0.000000, bitrate: 286 kb/s
Stream #0:0(eng): Audio: aac (LC) (drms / 0x736D7264), 44100 Hz, stereo, fltp, 265 kb/s (default)
({print($0+$0.debugDescription+")")})("({print($0+$0.debugDescription+\")\")})(") |