spanish ruby perl format

ruby - spanish - ¿Qué otros idiomas tienen características y/o bibliotecas similares al formato de Perl?



strftime ruby (3)

Puede que sea una minoría aquí, pero disfruto mucho los formatos de Perl . Me gusta especialmente poder envolver un texto largo dentro de una columna ("~~ ^ <<<<<<<<<<<<<<<<" escribe cosas). ¿Hay otros lenguajes de programación que tengan características similares, o bibliotecas que implementen características similares? Estoy especialmente interesado en cualquier biblioteca que implemente algo similar para Ruby, pero también tengo curiosidad acerca de otras opciones.


Me parece recordar algo similar en Fortran cuando lo utilicé hace muchos años (sin embargo, puede haber sido una biblioteca de terceros).

En cuanto a otras opciones en Perl, eche un vistazo a Perl6::Form .

La función de form reemplaza el format en Perl6. Damian Conway en " Mejores prácticas Perl " recomienda usar Perl6::Form con Perl5 citando los siguientes problemas con el format ....

  • estáticamente definido
  • confía en las variables globales para config y pkg vars para los datos que formatean
  • utiliza filehandles con nombre (solo)
  • no recursivo o reentrante

Aquí hay una variación Perl6::Form en el ejemplo de Ruby por Robert Gamble ....

use Perl6::Form; my ( $month, $day, $year ) = qw''Sep 18 2001''; my ( $num, $numb, $location, $toe_size ); for ( "Market", "Home", "Eating Roast Beef", "Having None", "On the way home" ) { push @$numb, ++$num; push @$location, $_; push @$toe_size, $num * 3.5; } print form '' Piggy Locations for {>>>}{>>}, {<<<<}'', $month, $day, $year , "", '' Number: location toe size'', '' --------------------------------------'', ''{]}) {[[[[[[[[[[[[[[[} {].0} '', $numb, $location, $toe_size;


FormatR proporciona formatos tipo Perl para Ruby.

Aquí hay un ejemplo de la documentación:

require "formatr" include FormatR top_ex = <<DOT Piggy Locations for @<< @#, @### month, day, year Number: location toe size ------------------------------------------- DOT ex = <<TOD @) @<<<<<<<<<<<<<<<< @#.## num, location, toe_size TOD body_fmt = Format.new (top_ex, ex) body_fmt.setPageLength(10) num = 1 month = "Sep" day = 18 year = 2001 ["Market", "Home", "Eating Roast Beef", "Having None", "On the way home"].each {|location| toe_size = (num * 3.5) body_fmt.printFormat(binding) num += 1 }

Que produce:

Piggy Locations for Sep 18, 2001 Number: location toe size ------------------------------------------- 1) Market 3.50 2) Home 7.00 3) Eating Roast Beef 10.50 4) Having None 14.00 5) On the way home 17.50


Existe la función Lisp (format ...) . Es compatible con bucles, condicionales y un montón de otras cosas divertidas.

por ejemplo (copiado del enlace de arriba):

(defparameter *english-list* "~{~#[~;~a~;~a and ~a~:;~@{~a~#[~;, and ~:;, ~]~}~]~}") (format nil *english-list* ''()) ;'' ==> "" (format nil *english-list* ''(1)) ;'' ==> "1" (format nil *english-list* ''(1 2)) ;'' ==> "1 and 2" (format nil *english-list* ''(1 2 3)) ;'' ==> "1, 2, and 3" (format nil *english-list* ''(1 2 3 4));'' ==> "1, 2, 3, and 4"