Raul, nice approach of using L and R and parsing out the expression. I
recall something like from last year and didn't think of it yet this
year. I'll keep that in mind for future challenges



On Fri, Dec 2, 2016 at 4:11 PM, Raul Miller <rauldmil...@gmail.com> wrote:
> Further note: The entire sequence should be reversed, to properly take
> advantage of J's right-to-left evaluation. The version I posted on the
> wiki - 
> http://code.jsoftware.com/wiki/Essays/Advent_Of_Code_2016#A_concise_approach
> - deals with this.
>
> In other words:
>
>    +/|+. 3 L 2 R 0
> 5
>    +/|+. 2 R 2 R 2 R 0
> 2
>    +/|+. 3 R 5 R 5 L 5 R 0
> 12
>
> (I probably make too many careless mistakes...)
>
> Thanks,
>
> --
> Raul
>
> On Fri, Dec 2, 2016 at 11:04 AM, Raul Miller <rauldmil...@gmail.com> wrote:
>> Eh...
>>
>> I seem to have made a mistake here.
>>
>>    R=: + 0j1&*
>>    L=: + 0j_1&*
>>
>>    +/+. 2 R 3 L 0
>> 5
>>    +/+. 2 R 2 R 2 R 0
>> 2
>>    +/+. 5 R 5 L 5 R 3 R 0
>> 18
>>
>> I was thinking that that should be symmetrical, but at the last
>> minute, I swapped my definitions of L and R (without rerunning the
>> code) based on how I thought it should look on a graph.
>>
>> But, apparently, that gives a different answer:
>>
>>    +/+. 2 R 3 L 0
>> _1
>>    +/+. 2 R 2 R 2 R 0
>> _2
>>    +/+. 5 R 5 L 5 R 3 R 0
>> 2
>>
>> After a bit of thought, though, I think I see where I went wrong:
>>
>>    L=: + 0j1&*
>>    R=: + 0j_1&*
>>
>>    +/|+. 2 R 3 L 0
>> 5
>>    +/|+. 2 R 2 R 2 R 0
>> 2
>>    +/|+. 5 R 5 L 5 R 3 R 0
>> 18
>>
>> My apologies for the sloppy initial post. I should have tested it
>> rather than just thinking it would work.
>>
>> Thanks,
>>
>> --
>> Raul
>>
>>
>>
>> On Fri, Dec 2, 2016 at 12:37 AM, Raul Miller <rauldmil...@gmail.com> wrote:
>>> Here's how I'd approach the computational part of this problem:
>>>
>>>    L=: + 0j1&*
>>>    R=: + 0j_1&*
>>>
>>>    +/+. 2 R 3 L 0
>>> 5
>>>    +/+. 2 R 2 R 2 R 0
>>> 2
>>>    +/+. 5 R 5 L 5 R 3 R 0
>>> 18
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>> On Thu, Dec 1, 2016 at 6:09 PM, Jan-Pieter Jacobs
>>> <janpieter.jac...@gmail.com> wrote:
>>>> My solution for day 1, using complex notation for X Y.
>>>>
>>>>
>>>> NB. in contains the input
>>>> d =: */\ 0j1 * 'R L' i. in #~ 'RL' e. ~ in NB. get directions for each move
>>>> st =: ". in -. 'RL' NB. step lengths
>>>> NB. get the manhattan distance (+/@:+. of all steps after each other, i.e.
>>>> their sum
>>>> ]r =: +/ | +. +/ d * st
>>>>
>>>> NB. Part two: the first crossing.
>>>> t =: <@:>:@i."0 st NB. prepare tracks of lengths ~ step length
>>>> dl =: (<"0 d) *&.>t NB. put each track in the right direction
>>>> ll =: > ([ ,{:@[ + ])&.>/ dl NB. sum from previous end point, and
>>>> concatenate.
>>>> NB. find the distance to the first place encountered more than once.
>>>> ]rr =: +/|+. {. (~. #~ (1<#)/.~) ll
>>>>
>>>> Cheers,
>>>>
>>>> Jan-Pieter
>>>>
>>>> 2016-12-01 21:23 GMT+01:00 'Pascal Jasmin' via Programming <
>>>> programm...@jsoftware.com>:
>>>>
>>>>> looks like I double pasted?  all one line.
>>>>>
>>>>>
>>>>>  +&| /}. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut 'R2, R2, R2'
>>>>>
>>>>> or
>>>>>
>>>>> +&| /}. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a
>>>>>
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>> From: Joe Bogner <joebog...@gmail.com>
>>>>> To: programm...@jsoftware.com
>>>>> Sent: Thursday, December 1, 2016 2:39 PM
>>>>> Subject: Re: [Jprogramming] advent of code 2016
>>>>>
>>>>> Nice, that sounds like what i had in mind. I get a domain error though:
>>>>>
>>>>> a =. 'R2, R2, R2'
>>>>>
>>>>> O =: 4 2 $ _1 0 0 1 1 0 0 _1
>>>>> f =: 4 : 0
>>>>> a =. 4 | x ({.@] +  _1 1 {~ 'R' = {.@[) {: y
>>>>> y ,   a , (}. {: y) + x (".@}.@[  * O {~ ]) a
>>>>> )
>>>>>
>>>>> +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a f each/
>>>>> (,: 0 0 0) (, <)~ |. dltb each ',' cut a  NB. part 1
>>>>>
>>>>>
>>>>> plot <"1 |: }."1 > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a
>>>>> NB. part 2, find intersection in plot
>>>>>
>>>>>
>>>>> Running all gives me:
>>>>>
>>>>>
>>>>>    +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a f
>>>>> each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a  NB. part 1
>>>>> |domain error: f
>>>>> |   a=.4|x    ({.@]+_1 1{~'R'={.@[){:y
>>>>>
>>>>>
>>>>>
>>>>> This is what it works up to:
>>>>>
>>>>> (,: 0 0 0) (, <)~ |. dltb each ',' cut a  NB. part 1
>>>>> ┌──┬──┬──┬─────┐
>>>>> │R2│R2│R2│0 0 0│
>>>>> └──┴──┴──┴─────┘
>>>>>
>>>>> This seems to work though:
>>>>>
>>>>> +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a
>>>>> 2
>>>>>
>>>>>    +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut 'R2,R2,R2'
>>>>> 2
>>>>>
>>>>> +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut 'R5,L5,R5,R3'
>>>>> 12
>>>>>
>>>>>
>>>>> It looks like there may be a typo  in your paste
>>>>>
>>>>> This
>>>>>
>>>>> +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a f each/
>>>>> (,: 0 0 0) (, <)~ |. dltb each ',' cut a  NB. part 1
>>>>>
>>>>> Should be this:
>>>>>
>>>>>
>>>>> +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Dec 1, 2016 at 2:11 PM, 'Pascal Jasmin' via Programming
>>>>> <programm...@jsoftware.com> wrote:
>>>>> > I posted an alternate solution,
>>>>> >
>>>>> > a =. wdclippaste '' NB. input from clipboard
>>>>> >
>>>>> > O =: 4 2 $ _1 0 0 1 1 0 0 _1
>>>>> > f =: 4 : 0
>>>>> > a =. 4 | x ({.@] +  _1 1 {~ 'R' = {.@[) {: y
>>>>> > y ,   a , (}. {: y) + x (".@}.@[  * O {~ ]) a
>>>>> > )
>>>>> >
>>>>> > +&|/ }. {: > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a f each/
>>>>> (,: 0 0 0) (, <)~ |. dltb each ',' cut a  NB. part 1
>>>>> >
>>>>> >
>>>>> > plot <"1 |: }."1 > f each/ (,: 0 0 0) (, <)~ |. dltb each ',' cut a  NB.
>>>>> part 2, find intersection in plot
>>>>> >
>>>>> > general description,
>>>>> >
>>>>> > O holds direction vectors,
>>>>> > 0 0 0 is appended to reversed list of commands, where position 0 is the
>>>>> orientation index into 0, and other 2 are x y positions of taxi.
>>>>> >
>>>>> > f/ updates orientation and x y on each iteration, where intermediate
>>>>> value a is new orientation.
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> > ----- Original Message -----
>>>>> > From: Joe Bogner <joebog...@gmail.com>
>>>>> > To: programm...@jsoftware.com
>>>>> > Sent: Thursday, December 1, 2016 1:43 PM
>>>>> > Subject: Re: [Jprogramming] advent of code 2016
>>>>> >
>>>>> > I added an alternate solution to problem 1, part 1 -
>>>>> > http://code.jsoftware.com/wiki/Essays/Advent_Of_Code_
>>>>> 2016#Imperative_Style_.28cleanup.29
>>>>> >
>>>>> > If I had the time, I would think about how to reformulate it so I
>>>>> > could use / to reduce the input to a single solution. I recall using
>>>>> > that pattern last year
>>>>> >
>>>>> >
>>>>> > On Thu, Dec 1, 2016 at 12:53 PM, Joe Bogner <joebog...@gmail.com> wrote:
>>>>> >> I've started a wiki page for it so we don't have to go back and add
>>>>> >> them later. Feel free to edit/add
>>>>> >>
>>>>> >> http://code.jsoftware.com/wiki/Essays/Advent_Of_Code_2016
>>>>> >>
>>>>> >> My solution to the first problem is pretty bad (works though). I
>>>>> >> intend to add another solution that's in a more functional style
>>>>> >>
>>>>> >> On Thu, Dec 1, 2016 at 11:16 AM, 'Pascal Jasmin' via Programming
>>>>> >> <programm...@jsoftware.com> wrote:
>>>>> >>> back again this year,
>>>>> >>>
>>>>> >>>
>>>>> >>> http://adventofcode.com/2016
>>>>> >>> ----------------------------------------------------------------------
>>>>> >>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>
>>>>> > ----------------------------------------------------------------------
>>>>> > For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> > ----------------------------------------------------------------------
>>>>> > For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to