[ 
https://issues.apache.org/jira/browse/FREEMARKER-101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16562722#comment-16562722
 ] 

Woonsan Ko commented on FREEMARKER-101:
---------------------------------------

How about supporting two new built-ins for sequence instead of {{random}}?
{code}
seq?any --> pick any item from the sequence at random. cf) first, last
seq?shuffle -> randomly permutes the sequence to return a new sequence 
re-ordered at random
{code}

These will provide *easier* and more *intuitive* solutions to the two use cases 
mentioned earlier: (a) pick one banner image at random from a sequence, (b) 
generate a randomly selected color list for a tag list.

{{?any}} seems to be aligned with the principles as it's similar to {{?first}} 
or {{?last}}.
{{?shuffle}} also seems fine, considering 
{{java.util.Collections.shuffle(List)}}, which makes me think it can be 
qualified as a new built-in for sequence.

Regards,

Woonsan

> Add random number generation - perhaps 5.random()?
> --------------------------------------------------
>
>                 Key: FREEMARKER-101
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-101
>             Project: Apache Freemarker
>          Issue Type: New Feature
>            Reporter: Ondra Žižka
>            Priority: Major
>
> I can't find a way to easily create a random number in FreeMarker.
> Could we add it please?
> Something like:
> {code:java}
> 0?random() --> 0 to 0.9999999 like Math.random() 
> 0?random(5,9) --> random from that interval
> Or (incompatible with the logic above)
> 5?random() --> 0 to 5
> 5?random(-1) --> 0 to 4
> And if this is possible - to make it compatible with the two above:
> random() --> 0 to 0.9999999 like Math.random() 
> random(5,9) --> random from that interval{code}
> I am not quite sure about the overall consistency of the logic.
> Also, collections could have a built-in to pick random item:
> {code:java}
> myItems.random(){code}
> As a shorthand for
> {code:java}
> myItems[myItems.size().random(-1)]{code}
>  
> See here: 
> https://stackoverflow.com/questions/3680273/how-to-get-a-random-integer-in-freemarker-template/51554484#51554484



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to