12 lines
356 B
Factor
12 lines
356 B
Factor
: take-shorter ( seq1 seq2 -- shorter )
|
|
[ shorter? ] 2keep ? ;
|
|
|
|
: common-head ( seq1 seq2 -- head )
|
|
2dup mismatch [ nip head ] [ take-shorter ] if* ;
|
|
|
|
: common-prefix-1 ( file1 file2 separator -- prefix )
|
|
[ common-head ] dip '[ _ = not ] trim-tail ;
|
|
|
|
: common-prefix ( seq separator -- prefix )
|
|
[ ] swap '[ _ common-prefix-1 ] map-reduce ;
|