Fork me on GitHub
#clojure-russia
<
2016-07-06
>
andmed09:07:30

деревья как листы: ну очень неидеоматично. Да, есть функции которые позволяют траверсить, библиотеки и т.п. но сама запись

[1 [2 nil [3 [4 [5 nil nil] [6 nil nil]] nil]] [2 [3 nil [4 [5 nil nil] [6 nil nil]]] nil]]
трудно воспринимаема. Т.е. даже примерно картинка дерева по такой записи схватывается с трудом, а всего-то четыре уровня. Контринтуитивно, а поделать ничего нельзя (?)

az10:07:29

@andmed: в ML выглядит получше

type 'a node =
    | One of 'a 
    | Many of 'a node list;;

Many [ One "a" ; Many [ One "b" ; Many [ One "c" ; One "d" ] ; One "e" ] ]

misha10:07:01

[1
 [2
  nil
  [3
   [4
    [5 nil nil]
    [6 nil nil]]
   nil]]
 [2
  [3
   nil
   [4
    [5 nil nil]
    [6 nil nil]]]
  nil]]

misha10:07:38

немного нагляднее

prepor10:07:20

@andmed:

[:header.ex-Header
     [:div.ex-Header-content
      [:div.ex-Header-inner
       [:div.ex-Header-logo
        [:img.ex-Header-logoImg {:src (:image state) :alt "exchange-logo"}]]
       [:div.ex-Header-text text]]]]
как это нагляднее вообще в текстовом виде сделать можно

andmed11:07:18

@all: спасибо

andmed11:07:02

последний пример самый наглядный, но в нем нельзя представить структурированное дерево, с сохранением структуры (бинарное скажем).

andmed11:07:06

А если дерево широкое но не глубокое, можно попробовать представить по подобию графов наверно:

(def T {:root [:val0 :leaf1 :leaf2 :leaf3] :leaf1 :val1 :leaf2 :val2 :leaf3 :val3})
но то ж фигня..

misha11:07:09

что-то тебя всё на ванлайнеры тянет

andmed11:07:26

форматирование - наше все 😉

andmed11:07:03

форматирование рулит короче

misha11:07:11

ну ты же в поисках наглядного, нет?

andmed11:07:29

ну да, в общем, спасибо. решение

misha11:07:09

запятые же еще есть, в широких-но-не-очень мапах помагают

misha11:07:09

(def T {:root [:val0 :leaf1 :leaf2 :leaf3], :leaf1 :val1, :leaf2 :val2, :leaf3 :val3})

misha11:07:39

^^^ уже проще переварить

kronos_vano17:07:27

without a GC, а в сорцах gc.c и gc.h