Thu Mar 28 08:08:23 2024
EVENTS
 FREE
SOFTWARE
INSTITUTE

POLITICS
JOBS
MEMBERS'
CORNER

MAILING
LIST

NYLXS Mailing Lists and Archives
NYLXS Members have a lot to say and share but we don't keep many secrets. Join the Hangout Mailing List and say your peice.

DATE 2016-11-01

LEARN

2024-03-28 | 2024-02-28 | 2024-01-28 | 2023-12-28 | 2023-11-28 | 2023-10-28 | 2023-09-28 | 2023-08-28 | 2023-07-28 | 2023-06-28 | 2023-05-28 | 2023-04-28 | 2023-03-28 | 2023-02-28 | 2023-01-28 | 2022-12-28 | 2022-11-28 | 2022-10-28 | 2022-09-28 | 2022-08-28 | 2022-07-28 | 2022-06-28 | 2022-05-28 | 2022-04-28 | 2022-03-28 | 2022-02-28 | 2022-01-28 | 2021-12-28 | 2021-11-28 | 2021-10-28 | 2021-09-28 | 2021-08-28 | 2021-07-28 | 2021-06-28 | 2021-05-28 | 2021-04-28 | 2021-03-28 | 2021-02-28 | 2021-01-28 | 2020-12-28 | 2020-11-28 | 2020-10-28 | 2020-09-28 | 2020-08-28 | 2020-07-28 | 2020-06-28 | 2020-05-28 | 2020-04-28 | 2020-03-28 | 2020-02-28 | 2020-01-28 | 2019-12-28 | 2019-11-28 | 2019-10-28 | 2019-09-28 | 2019-08-28 | 2019-07-28 | 2019-06-28 | 2019-05-28 | 2019-04-28 | 2019-03-28 | 2019-02-28 | 2019-01-28 | 2018-12-28 | 2018-11-28 | 2018-10-28 | 2018-09-28 | 2018-08-28 | 2018-07-28 | 2018-06-28 | 2018-05-28 | 2018-04-28 | 2018-03-28 | 2018-02-28 | 2018-01-28 | 2017-12-28 | 2017-11-28 | 2017-10-28 | 2017-09-28 | 2017-08-28 | 2017-07-28 | 2017-06-28 | 2017-05-28 | 2017-04-28 | 2017-03-28 | 2017-02-28 | 2017-01-28 | 2016-12-28 | 2016-11-28 | 2016-10-28 | 2016-09-28 | 2016-08-28 | 2016-07-28 | 2016-06-28 | 2016-05-28 | 2016-04-28 | 2016-03-28 | 2016-02-28 | 2016-01-28 | 2015-12-28 | 2015-11-28 | 2015-10-28 | 2015-09-28 | 2015-08-28 | 2015-07-28 | 2015-06-28 | 2015-05-28 | 2015-04-28 | 2015-03-28 | 2015-02-28 | 2015-01-28 | 2014-12-28 | 2014-11-28 | 2014-10-28

Key: Value:

Key: Value:

MESSAGE
DATE 2016-11-02
FROM Christopher League
SUBJECT Re: [Learn] Fitch Algorithm - C++
From learn-bounces-at-nylxs.com Wed Nov 2 22:21:11 2016
Return-Path:
X-Original-To: archive-at-mrbrklyn.com
Delivered-To: archive-at-mrbrklyn.com
Received: from www.mrbrklyn.com (www.mrbrklyn.com [96.57.23.82])
by mrbrklyn.com (Postfix) with ESMTP id 2C715161312;
Wed, 2 Nov 2016 22:21:11 -0400 (EDT)
X-Original-To: learn-at-nylxs.com
Delivered-To: learn-at-nylxs.com
Received: from liucs.net (contrapunctus.net [174.136.110.10])
by mrbrklyn.com (Postfix) with ESMTP id 21BBA160E77
for ; Wed, 2 Nov 2016 22:21:07 -0400 (EDT)
Received: from localhost (pool-74-101-138-109.nycmny.fios.verizon.net
[74.101.138.109]) by liucs.net (Postfix) with ESMTPSA id 24518E097
for ; Wed, 2 Nov 2016 22:21:01 -0400 (EDT)
From: Christopher League
To: learn-at-nylxs.com
In-Reply-To: <20161102182751.GA10998-at-www.mrbrklyn.com>
References: <20161102182751.GA10998-at-www.mrbrklyn.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/25.1.1
(x86_64-unknown-linux-gnu)
Date: Wed, 02 Nov 2016 22:20:59 -0400
Message-ID: <87k2cl7184.fsf-at-contrapunctus.net>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Subject: Re: [Learn] Fitch Algorithm - C++
X-BeenThere: learn-at-nylxs.com
X-Mailman-Version: 2.1.17
Precedence: list
List-Id:
List-Unsubscribe: ,

List-Archive:
List-Post:
List-Help:
List-Subscribe: ,

Errors-To: learn-bounces-at-nylxs.com
Sender: "Learn"

--=-=-=
Content-Type: multipart/alternative; boundary="==-=-="

--==-=-=
Content-Type: text/plain


Tonight I put together a small Haskell script for the Fitch algorithm.
You specify a tree with its leaves labeled, and it figures out the
labels for the interior nodes. There are no transition weights. It
outputs the tree in GraphViz format, so we use `dot` to generate the
image... see attached.

~~~~ {.haskell}
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TupleSections #-}
import Data.List (intersperse)
import Data.Set (Set)
import Control.Monad.State
import Control.Monad.Writer
import qualified Data.Set as Set

data Tree a b
= Leaf { leafValue :: b
}
| Branch { branchValue :: a
, branchLeft :: Tree a b
, branchRight :: Tree a b
}
deriving Show

value :: Tree a a -> a
value (Leaf a) = a
value (Branch a _ _) = a

-- Bottom up
phase1 :: Ord b => Tree a b -> (Set b, Tree (Set b) b)
phase1 (Leaf b) = (Set.singleton b, Leaf b)
phase1 (Branch _ l r) =
(s3, Branch s3 l' r')
where
(s1, l') = phase1 l
(s2, r') = phase1 r
s3 =
if Set.null i then u else i
where
u = Set.union s1 s2
i = Set.intersection s1 s2

-- Top down
phase2 :: Ord b => Tree (Set b) b -> Maybe b -> Tree b b
phase2 (Leaf b) _ = Leaf b
phase2 (Branch set left right) parentOpt =
Branch b (phase2 left (Just b)) (phase2 right (Just b))
where
b = case parentOpt of
Just p | Set.member p set -> p
_ -> Set.elemAt 0 set

-- Combine them together
fitch :: Ord b => Tree a b -> Tree b b
fitch t =
phase2 t' Nothing
where (_, t') = phase1 t

------------------------------------------------------------------
-- This part is about visualizing the trees using GraphViz (dot)
class ToLabel a where
toLabel :: a -> String

instance ToLabel Char where
toLabel c = [c]

instance ToLabel String where
toLabel = id

instance ToLabel a => ToLabel (Set a) where
toLabel s =
"{" ++ concat (intersperse "," (map toLabel (Set.toList s))) ++ "}"

next :: State Int Int
next = get <* modify (+1)

numberTree :: Tree a b -> State Int (Tree (Int,a) (Int,b))
numberTree (Leaf b) =
Leaf . (,b) <$> next
numberTree (Branch a l r) =
Branch . (,a) <$> next <*> numberTree l <*> numberTree r

graphViz' :: (ToLabel a, ToLabel b) => Tree (Int,a) (Int,b) -> Writer String String
graphViz' (Leaf (i,b)) = do
let n = "n" ++ show i
tell $ n ++ " [shape=box, label=\"" ++ toLabel b ++ "\"]\n"
return n
graphViz' (Branch (i,a) l r) = do
n1 <- graphViz' l
n2 <- graphViz' r
let np = "n" ++ show i
tell $ np ++ " [shape=oval, label=\"" ++ toLabel a ++ "\"]\n"
tell $ np ++ " -> " ++ n1 ++ "\n"
tell $ np ++ " -> " ++ n2 ++ "\n"
return np

graphViz :: (ToLabel a, ToLabel b) => Tree a b -> String
graphViz t =
"digraph{\n" ++ execWriter (graphViz' t') ++ "}\n"
where t' = evalState (numberTree t) 0

-- Sample tree from http://www.cse.nd.edu/~cse/2013fa/40532/lectures/lecture23/lecture23.pdf
t1 :: Tree () Char
t1 = Branch ()
( Branch ()
( Branch ()
(Leaf 'C')
(Leaf 'G')
)
( Branch ()
(Leaf 'T')
(Leaf 'G')
)
)
(Leaf 'A')

main :: IO ()
main =
putStrLn $ graphViz $ fitch t1
~~~~


--==-=-=
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable






1.0, user-scalable=3Dyes">




Tonight I put together a small Haskell script for the Fitch algorithm. Y=
ou specify a tree with its leaves labeled, and it figures out the labels fo=
r the interior nodes. There are no transition weights. It outputs the tree =
in GraphViz format, so we use dot to generate the image=E2=80=
=A6 see attached.


sourceCode haskell">{-# LANGUAGE TypeSynonymInstances, F=
lexibleInstances, TupleSections #-}

import Data.Listan> (intersperse)
import Data.Setn> (Set)
import Control.Monad=
.State

import Control.Monad=
.Writer

import qualified Data.Setn> as Set

data Tree a b
=3D Leaf {ss=3D"ot"> leafValue :: b
}
| Branch {=3D"ot"> branchValue :: a
, branchLeft :: Tr=
ee
a b
, branchRight :: Tr=
ee
a b
}
deriving Show

value :: Tree a a class=3D"ot">->
a
value (Leaf a) =3D a
value (Branch a _ _) =3D> a

-- Bottom up
phase1 :: Ord b lass=3D"ot">=3D> Tree a b =3D"ot">-> (Set b, T=
ree
(Set b) b)
phase1 (Leaf b) =3D (Se=
t.singleton b, Leaf b)
phase1 (Branch _ l r) =3Dn>
(s3, Branch s3 l' r')
where
(s1, l') =3D phase1 l
(s2, r') =3D phase1 r
s3 =3D
if Set.null i then> u else i
where
u =3D Set.union s1 s2
i =3D Set.intersection s1 s2

-- Top down
phase2 :: Ord b lass=3D"ot">=3D> Tree (t">Set b) b -> Maybe=
b -> Tree b b
phase2 (Leaf b) _ =3D <=
span class=3D"dt">Leaf
b
phase2 (Branch set left right) parentOpt ass=3D"fu">=3D
Branch b (phase2 left (Just<=
/span> b)) (phase2 right (Just b))
where
b =3D case parentOp=
t of
Just p | Set.m=
ember p set -> p
_ -> Set.elemAt 0<=
/span> set

-- Combine them together
fitch :: Ord b ass=3D"ot">=3D> Tree a b "ot">-> Tree b b
fitch t =3D
phase2 t' Nothing
where (_, t') =3D=
phase1 t

--------------------------------------------------------=
----------

-- This part is about visualizing the trees using GraphV=
iz (dot)

class ToLabel a lass=3D"kw">where
toLabel :: a -> pan class=3D"dt">String


instance ToLabel class=3D"dt">Char where
toLabel c =3D [c]

instance ToLabel class=3D"dt">String where
toLabel =3D id

instance ToLabel a n class=3D"ot">=3D>
ToLabel (s=3D"dt">Set a) where
toLabel s =3D
"{" ++ co=
ncat (intersperse "," (map toLabel (Set=
.toList s))) ++ "}"<=
/span>

next :: State ss=3D"dt">Int Int
next =3D get <* modi=
fy (+1)

numberTree :: Tree a b =
-> State =3D"dt">Int (Tree (Int<=
/span>,a) (Int,b))
numberTree (Leaf b) =3D
Leaf . (,b) ss=3D"fu"><$> next
numberTree (Branch a l r) =3D<=
/span>
Branch . (,a) lass=3D"fu"><$> next <*> numbe=
rTree l <*> numberTree r

graphViz' :: (ToLabeln> a, ToLabel b) =3D>> Tree (Int,a) (lass=3D"dt">Int,b) -> ">Writer String String<=
/span>
graphViz' (Leaf (i,b)) =3D=
do
let n =3D =3D"st">"n" ++ show i
tell $ n ++ ss=3D"st">" [shape=3Dbox, label=3D\"" fu">++ toLabel b ++ &qu=
ot;\"]\n"

return n
graphViz' (Branch (i,a) l r) u">=3D do
n1 <- graphViz' l
n2 <- graphViz' r
let np =3D s=3D"st">"n" ++ show i
tell $ np ++ ass=3D"st">" [shape=3Doval, label=3D\"" =3D"fu">++ toLabel a ++ >"\"]\n"
tell $ np ++ ass=3D"st">" -> " ++ n1 class=3D"fu">++
"\n"
tell $ np ++ ass=3D"st">" -> " ++ n2 class=3D"fu">++
"\n"
return np

graphViz :: (ToLabel a,=
ToLabel b) =3D> an class=3D"dt">Tree
a b -> =3D"dt">String
graphViz t =3D
"digraph{\n" ++pan> execWriter (graphViz' t') ++ lass=3D"st">"}\n"
where t' =3D eval=
State (numberTree t) 0

-- Sample tree from http://www.cse.nd.edu/~cse/2013fa/40=
532/lectures/lecture23/lecture23.pdf

t1 :: Tree () ss=3D"dt">Char
t1 =3D Branch ()
( Branch ()
( Branch ()
(Leaf 'C'an>)
(Leaf 'G'an>)
)
( Branch ()
(Leaf 'T'an>)
(Leaf 'G'an>)
)
)
(Leaf 'A')

main :: IO ()
main =3D
putStrLn $ graphViz $=
fitch t1




--==-=-=--

--=-=-=
Content-Type: image/png
Content-Disposition: inline; filename=fitch.png
Content-Transfer-Encoding: base64

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
+/8AguxEsm4JSYwAAAAASUVORK5CYII=
--=-=-=
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Learn mailing list
Learn-at-nylxs.com
http://lists.mrbrklyn.com/mailman/listinfo/learn

--=-=-=--

  1. 2016-11-01 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] how is it indexing in cuda
  2. 2016-11-01 Ruben Safir <ruben.safir-at-my.liu.edu> Re: [Learn] not adequately speced of explained
  3. 2016-11-01 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] how is it indexing in cuda
  4. 2016-11-01 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] not adequately speced of explained
  5. 2016-11-02 Christopher League <league-at-contrapunctus.net> Re: [Learn] Fitch Algorithm - C++
  6. 2016-11-02 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fitch Algorithm - C++
  7. 2016-11-02 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] how is it indexing in cuda
  8. 2016-11-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fitch Algorithm - C++
  9. 2016-11-02 IEEE Computer Society <csconnection-at-computer.org> Subject: [Learn] Hear Google's John Martinis Take on Quantum Computing at
  10. 2016-11-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] opencl
  11. 2016-11-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] scheduled for tommorw
  12. 2016-11-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] threads tutorial
  13. 2016-11-03 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fitch Algorithm - C++
  14. 2016-11-03 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fitch Algorithm - C++
  15. 2016-11-03 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fitch Algorithm - C++
  16. 2016-11-03 Christopher League <league-at-contrapunctus.net> Re: [Learn] huffman code
  17. 2016-11-03 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] huffman code
  18. 2016-11-03 Ruben Safir <ruben.safir-at-my.liu.edu> Re: [Learn] huffman code
  19. 2016-11-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fitch algorithm from the beginning
  20. 2016-11-03 From: <mrbrklyn-at-panix.com> Subject: [Learn] huffman code
  21. 2016-11-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Phenology meeting
  22. 2016-11-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] relevant hackathon
  23. 2016-11-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] relevant hackathon
  24. 2016-11-04 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] huffman code
  25. 2016-11-04 Christopher League <league-at-contrapunctus.net> Subject: [Learn] Fitch/Sankoff
  26. 2016-11-05 Christopher League <league-at-contrapunctus.net> Re: [Learn] Fwd: templates within templates
  27. 2016-11-05 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: Re: const T vs T const
  28. 2016-11-05 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: Template Library files and Header linking troubles
  29. 2016-11-05 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: templates within templates
  30. 2016-11-06 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fwd: templates within templates
  31. 2016-11-06 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Fwd: templates within templates
  32. 2016-11-06 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fwd: templates within templates
  33. 2016-11-06 Christopher League <league-at-contrapunctus.net> Re: [Learn] Fwd: templates within templates
  34. 2016-11-06 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Fwd: templates within templates
  35. 2016-11-06 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Fwd: templates within templates
  36. 2016-11-06 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Fwd: templates within templates
  37. 2016-11-06 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] GNU Parallel 20161022 ('Matthew') released [stable]
  38. 2016-11-07 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] templates and ostream for future reference
  39. 2016-11-08 Christopher League <league-at-contrapunctus.net> Re: [Learn] C++ signature ambiguity
  40. 2016-11-08 Ruben Safir <ruben.safir-at-my.liu.edu> Re: [Learn] C++ signature ambiguity
  41. 2016-11-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] C++ signature ambiguity
  42. 2016-11-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: Invitation: Phylogeny meeting -at- Weekly from 10:15 to
  43. 2016-11-08 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Learn] Fwd: [nylug-talk] RSVP open: Wed Nov 16,
  44. 2016-11-09 Christopher League <league-at-contrapunctus.net> Re: [Learn] merge sort parallel hw
  45. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] merge sort parallel hw
  46. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] merge sort parallel hw
  47. 2016-11-09 Christopher League <league-at-contrapunctus.net> Re: [Learn] merge sort parallel hw
  48. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] mergesort tutorial
  49. 2016-11-09 Christopher League <league-at-contrapunctus.net> Re: [Learn] mergesort tutorial
  50. 2016-11-09 Christopher League <league-at-contrapunctus.net> Re: [Learn] namespace and external files confusion
  51. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] namespace and external files confusion
  52. 2016-11-09 From: "Carlos R. Mafra" <crmafra-at-gmail.com> Re: [Learn] Question about a small change
  53. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] =?utf-8?q?C++_call_of_overloaded_=E2=80=98track=28int*=26?=
  54. 2016-11-09 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: lost arguments
  55. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: [dinosaur] Dating origins of dinosaurs,
  56. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] merge sort parallel hw
  57. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] mergesort tutorial
  58. 2016-11-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] namespace and external files confusion
  59. 2016-11-10 Christopher League <league-at-contrapunctus.net> Re: [Learn] merge sort parallel hw
  60. 2016-11-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] merge sort parallel hw
  61. 2016-11-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] merge sort parallel hw
  62. 2016-11-10 Ruben Safir <ruben.safir-at-my.liu.edu> Re: [Learn] merge sort parallel hw
  63. 2016-11-10 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] [Hangout-NYLXS] mergesort tutorial
  64. 2016-11-10 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Learn] Fwd: [Hangout-NYLXS] ease your mind- everything in the
  65. 2016-11-10 Ruben Safir <ruben.safir-at-my.liu.edu> Subject: [Learn] Fwd: [Hangout-NYLXS] R Programming Workshop
  66. 2016-11-10 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Paleocast phenogenetic tree building
  67. 2016-11-11 Christopher League <league-at-contrapunctus.net> Re: [Learn] merge sort parallel hw
  68. 2016-11-12 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] HW of mergesort in parallel
  69. 2016-11-13 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] merge sort in parallel assignment
  70. 2016-11-14 Christopher League <league-at-contrapunctus.net> Re: [Learn] merge sort in parallel assignment
  71. 2016-11-14 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] merge sort in parallel assignment
  72. 2016-11-14 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] merge sort parallel hw
  73. 2016-11-14 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] CUDA and video
  74. 2016-11-14 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] PNG Graphic formats and CRCs
  75. 2016-11-15 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: PNG coding
  76. 2016-11-15 ruben safir <ruben.safir-at-my.liu.edu> Subject: [Learn] Fwd: PNG Coding
  77. 2016-11-16 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Fwd: lost arguments
  78. 2016-11-16 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] relevant hackathon
  79. 2016-11-16 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] C++ Workshop Announcement
  80. 2016-11-16 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Learn] Fwd: Re: ref use
  81. 2016-11-16 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] ref use
  82. 2016-11-16 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] why use a reference wrapper int his example
  83. 2016-11-17 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] [Hangout-NYLXS] at K&R now
  84. 2016-11-17 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: [Hangout-NYLXS] Fwd: PNG Coding
  85. 2016-11-18 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] C++ workshop and usenet responses
  86. 2016-11-19 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: ref use
  87. 2016-11-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] when is the constructor called for an object
  88. 2016-11-21 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: creating a binary tree
  89. 2016-11-21 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: hidden static
  90. 2016-11-21 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: ISBI 2017 Call for Abstracts and Non-Author
  91. 2016-11-21 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: PNG coding
  92. 2016-11-21 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: Re: the new {} syntax
  93. 2016-11-21 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: when is the constructor called for an object
  94. 2016-11-21 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: when is the constructor called for an object
  95. 2016-11-21 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: [dinosaur] Eoconfuciusornis feather keratin and
  96. 2016-11-21 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] look what I found
  97. 2016-11-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Cuccuency book
  98. 2016-11-22 ruben safir <ruben.safir-at-my.liu.edu> Subject: [Learn] declare a func or call an object
  99. 2016-11-22 Ruben Safir <ruben.safir-at-my.liu.edu> Subject: [Learn] Fwd: Re: Using CLIPS as a library
  100. 2016-11-23 Ruben Safir <ruben.safir-at-my.liu.edu> Subject: [Learn] Fwd: Simple C++11 Wrapper for CLIPS 6.30
  101. 2016-11-23 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Parrelel Programming HW2 with maxpath
  102. 2016-11-24 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] great research news for big data
  103. 2016-11-24 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] mapping algorithms
  104. 2016-11-24 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Todays meeting
  105. 2016-11-25 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: [dinosaur] Flightless theropod phylogenetic variation
  106. 2016-11-26 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Note to self for Thursday
  107. 2016-11-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fitch etc
  108. 2016-11-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Note to self for Thursday
  109. 2016-11-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] operator<<() overloading details and friend
  110. 2016-11-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] 130 year old feathers analysis
  111. 2016-11-27 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: ACM/SPEC ICPE 2017 - Call for Tutorial Proposals
  112. 2016-11-27 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: ACM/SPEC ICPE 2017 - Call for Workshop Proposals
  113. 2016-11-27 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: CfP 22nd Conf. Reliable Software Technologies,
  114. 2016-11-27 ruben safir <ruben-at-mrbrklyn.com> Subject: [Learn] Fwd: Seeking contributors for psyche-c
  115. 2016-11-29 Christopher League <league-at-contrapunctus.net> Re: [Learn] Look at this exciting output by my test program
  116. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Look at this exciting output by my test program
  117. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Learn] Look at this exciting output by my test program
  118. 2016-11-29 Christopher League <league-at-contrapunctus.net> Re: [Learn] Quantum Entanglement
  119. 2016-11-29 Ruben Safir <mrbrklyn-at-panix.com> Re: [Learn] Quantum Entanglement
  120. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Here is the paper I was talking out
  121. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Look at this exciting output by my test program
  122. 2016-11-29 nylxs <mrbrklyn-at-optonline.net> Subject: [Learn] Look at this exciting output by my test program
  123. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] Quantum Entanglement
  124. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] The Death of PBS
  125. 2016-11-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] witmer lab ohio and 3d imaging
  126. 2016-11-30 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Learn] phylogenetic crawler

NYLXS are Do'ers and the first step of Doing is Joining! Join NYLXS and make a difference in your community today!