3 ms·
Here is the same project, done in PHP in less then 5 minutes... $split_by_whitespace = explode(file_get_contents('exaample.txt')," "); $circular = array();
by cubano 10y ago
Here is the same project, done in PHP in less then 5 minutes...
$split_by_whitespace = explode(file_get_contents('exaample.txt')," ");
$circular = array();
for ($i=0;$i<count($split_by_whitespace);$i++) {
array_push(array_shift($split_by_whitespace));
$circular[]=$split_by_whitespace;
}
sort($circular);
print_f($circular);
While I am sure there a lot of interesting use cases for Racket, but when it comes to processing array data, I'll take PHP everytime.
- Jtsummers 10y ago1) Cool. 2) This isn't, strictly, about processing text data but about an approach to development that Racket makes easy. Specifically: Prototype in a REPL or similar Easily integrate unit tests alongside the relevant units. Convert it to a statically typed implementation: Remove some need for run-time checks Depending on programming ethos has significant value 3) If you really want to do text processing, let's go with perl: print sort map{sub{map{push@_,shift;"@_\n"}@_}->(split)}<> From: http://www.perlmonks.org/?node_id=62671 http://www.perlmonks.org/?node_id=62671 4) Things missing from yours and the perl one: Usage notes Command line flags/options Tests Static typing (maybe of value for small programs like this, but useful in larger programs [EDIT:0]) The first three are trivially added to the other two programs (though the perl one will need some reformatting). But the fourth is impossible. Again, for this scope of project (a demonstration, mind you) the tests and static typing aren't as essential. But if you want this code to live on, and potentially become part of a library of more utilities, they're very helpful. [0] and projects that depend on this is a library call so they know the types of the arguments and returns.
- thdespou 10y agoTotally unreadable code!
- cdevs 10y agoThis non working prototype code is bothering me....fixed. <?php # considering t2.txt contains below two lines #a c d f n z r #granc dr ssdo and # $file_lines = file_get_contents('./t2.txt'); $split_by_line = explode("\n",$file_lines); $circular = array(); foreach ($split_by_line as $line) { $split_by_words = explode(' ',$line); sort($split_by_words); $circular = $split_by_words; foreach($split_by_words as $word){ array_push($circular,array_shift($circular)); echo implode($circular," ") . "\n"; } $split_by_words = null; echo "\n"; }
- Jtsummers 10y agoPrefix your code with two spaces on each line and HN will include it verbatim. Otherwise it thinks you have paragraphs with line breaks that it ignores.