How to resolve the algorithm Find common directory path step by step in the Factor programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Find common directory path step by step in the Factor programming language

Table of Contents

Problem Statement

Create a routine that, given a set of strings representing directory paths and a single character directory separator, will return a string representing that part of the directory tree that is common to all the directories. Test your routine using the forward slash '/' character as the directory separator and the following three strings as input paths: Note: The resultant path should be the valid directory '/home/user1/tmp' and not the longest common string '/home/user1/tmp/cove'. If your language has a routine that performs this function (even if it does not have a changeable separator character), then mention it as part of the task.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Find common directory path step by step in the Factor programming language

Source code in the factor programming language

: 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 ;


  

You may also check:How to resolve the algorithm Caesar cipher step by step in the Modula-3 programming language
You may also check:How to resolve the algorithm Hello world/Standard error step by step in the Perl programming language
You may also check:How to resolve the algorithm Rate counter step by step in the Ring programming language
You may also check:How to resolve the algorithm Sudoku step by step in the PL/I programming language
You may also check:How to resolve the algorithm Tokenize a string with escaping step by step in the Simula programming language